1. 程式人生 > >記一次往集群添加機器,liveNodes缺少機器的情況

記一次往集群添加機器,liveNodes缺少機器的情況

新的 安裝目錄 虛擬機 namenode 文件 一次 style 認識 hadoop

1、背景

公司線下環境,原本有三臺虛擬機組成的集群(cdh5.3.6),由於硬件配置比較低,申請了新的三臺機器,8核8G內存,在上面部署了cdh5.11.1,較新的cdh集群。

由於遠來的三臺還在使用,所以打算把新的三臺機器搭建好後,再把原來三臺機器合並進來。

2、過程

(1)讓hadoop001,hadoop002,hadoop003三臺機器和hadoop004,hadoop005,hadoop006三臺機器互相認識認識,ssh互通

ssh-copy-id -i ~/.ssh/id_rsa.put haoop@hadoop001

在所有的機器都運行這個命令即可

(2)修改所有機器的/etc/hosts,加上六臺機器的ip和hosts映射

(3)修改hadoop配置文件,slaves裏面加上其他機器的域名

(4)把hadoop的文件發送到hadoop001-hadoop003機器上

scp -r /home/hadoop/app/hadoop hadoop@hadoop001:/home/hadoop/app

(5)在namenode節點上先停止集群,再重啟集群

3、問題來了

重啟好了之後,打開hadoop004:50070,發現只有三個livenodes節點,並且刷新的時候,一會兒是hadoop004,hadoop005,hadoop006,一會兒是hadoop001,hadoop005,hadoop006,

就一直在變化。百思不得姐。

4、解決

最後發現,我把hadoop的數據文件放在hadoop安裝目錄下的tmp文件夾下,發送hadoop包的時候,連同數據一起發送了,導致namenode誤認為這是一臺機器。

然後把hadoop001-hadoop003上的tmp文件夾下都清空了,再重啟hdfs即可。

5、總結

(1)這裏新增節點,我重啟了整個集群的hdfs,當然這是不妥的,因為如果是生產環境,會影響到任務運行,使任務失敗。

當然如何不重啟集群,就新增機器,還不知道如何解決。

(2)當然線上一般都是用clouderaManager來安裝集群的,可以一鍵發現主機,一鍵添加機器

(3)百度的時候,發現有人說,格式化hdfs,這是非常不可取的,因為安裝大數據平臺其他組件的時候,往hdfs上寫了很多東西,不能隨便格式化的

(4)線下沒有用clouderamanager裝平臺,是因為內存實在是太小了,8G的內存,剛裝完,就用掉了7個G,導致集群報警。最終還是選擇了手工配置組件的方式,用cdh來安裝

記一次往集群添加機器,liveNodes缺少機器的情況