記一次往集群添加機器,liveNodes缺少機器的情況
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缺少機器的情況