天天看點

Hadoop小兵筆記【二】Hadoop分布式叢集擴充實戰經驗

一、叢集原先配置:

                  主機名sparkMaster,Ubuntu12.04-32 ,使用者名Root , 記憶體4g    (隻用于任務排程和配置設定,不做計算節點)

                  從機名sparkSlave1,Ubuntu12.04-32 ,使用者名Root , 記憶體4g    (計算節點)

                  從機名sparkSlave2,Ubuntu12.04-32 ,使用者名Root , 記憶體1.7g (計算節點)

二、擴充原因:計算資料量增大,原先的兩個工作節點已不不能滿足實時性的需求,由于實驗室計算資源有限,故将原先的排程節點也增加為計算節點,即擴充後的sparkMaster既是排程節點也是計算節點。

三、修改配置流程:cd  /usr/local/hadoop/hadoop-2.2.0/etc/hadoop

                                    vim slaves 修改slaves檔案,将原先隻有sparkSlave1、sparkSlave2的内容增添sparkMaster,儲存退出(對三個節點上的檔案分别執行同樣操作);

                                    vim hdfs-site.xml修改hdfs-site.xml檔案,将dfs.replication的值由2改寫成3(對三個節點上的檔案分别執行同樣操作);

Hadoop小兵筆記【二】Hadoop分布式叢集擴充實戰經驗

四、格式化HDFS:cd  /usr/local/hadoop/hadoop-2.2.0/bin

                                  hadoop namenode -format

五、錯誤描述:啟動SparkMaster成功,使用jps檢視SparkMaster程序時會出現Datanode、Namenode、ResourceManager 、NodeManager、SecondaryNameNode、jps,但是使用jps檢視sparkSlave1、sparkSlave2 的程序時隻會短暫地出現十秒鐘左右Datanode、NodeManager、jps,随後程序便會掉線,而且在通路http://SparkMaster:50070登入web控制台檢視HDFS叢集狀況時Live Node=0,這說明Hadoop叢集沒有啟動成功(下圖為啟動成功時配圖):

Hadoop小兵筆記【二】Hadoop分布式叢集擴充實戰經驗

六、錯誤分析:由于在執行hadoop格式化時namenode format會初始化一些目錄和檔案,這其中包括/usr/local/hadoop/hadoop-2.2.0/dfs/name/current裡面的VERSION檔案:

Hadoop小兵筆記【二】Hadoop分布式叢集擴充實戰經驗

其中clusterID會在格式化時更改,而且會造成SparkMaster的clusterID和sparkSlave1、sparkSlave2的clusterID 不一緻,這樣就會造成Hadoop叢集啟動失敗。

七、解決方法:在執行格式化之前,需要将所有節點中的/usr/local/hadoop/hadoop-2.2.0/dfs目錄裡面的内容清空,并使用./stop-all.sh停止叢集,這樣就能保證SparkMaster、sparkSlave1、sparkSlave2裡面的clusterID都是一緻的。

ps:作者水準有限,如有不當之處,還望讀者不吝賜教!

繼續閱讀