解決集群搭建找不到datanode的問題


解決"no datanode to stop"問題
當我停止Hadoop時發現如下信息:
    no datanode to stop
原因:每次namenode format會重新創建一個namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的數據,但是沒有清空datanode下的數據,導致啟動時失敗,有兩種解決方案:
第一種解決方案如下:
1)先刪除"/usr/hadoop/tmp"
rm -rf /usr/hadoop/tmp
2)創建"/usr/hadoop/tmp"文件夾
mkdir /usr/hadoop/tmp
3)刪除"/tmp"下以"hadoop"開頭文件
rm -rf /tmp/hadoop*
4)重新格式化hadoop 
hadoop namenode -format
5)啟動hadoop
start-all.sh
使用第一種方案,有種不好處就是原來集群上的重要數據全沒有了。假如說Hadoop集群已經運行了一段時間。
建議采用第二種。
第二種方案如下:
1)修改每個Slave的clusterID使其與Master的clusterID一致。
   或者
2)修改Master的clusterID使其與Slave的clusterID一致。
該"namespaceID"位於"/home/zkpk/hadoopdata/dfs/name/current/VERSION"文件中,前面藍色的可能根據實際情況變化,但后面紅色一般是不變的。
例如:查看"Master"下的"VERSION"文件
 
本人建議采用第二種,這樣方便快捷,而且還能防止誤刪。
總結一下,其實找不到datanode的原因可能往往是因為自己搭建集群的時候格式化多次了,當然不排除機子突然抽風了,本來集群搭建第一次格式化時namenode生成一個clusterID,並且復制給子節點了,當再次不小心格式化的時候導致namenode和datanode的clusterID不一樣了,所以才會出現start-all.sh的時候找不到datanode了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM