我在40臺機器的集羣中使用Hadoop hadoop-2.0.0-mr1-cdh4.1.2。每臺機器有12個由hadoop使用的磁盤。 在一臺機器有些磁盤是不平衡的,而且我手動決定重新平衡,在這篇文章中提到:rebalance individual datanode in hadoop 我停止了該服務器上的數據管理部,移動的塊文件對,有些感動磁盤之間的整個子目錄。手動重新平衡hadoop hdfs磁盤後DataNode將不會重新啓動
當我停止DataNode時,NameNode通過在UI中顯示以下消息來抱怨丟失的塊: 警告:有2002個丟失塊。請檢查日誌或運行fsck以確定缺失的塊。
然後,我試着重新啓動DataNode。它拒絕成功啓動,並且會記錄錯誤和警告,如下所示:
java.io.IOException:無效的目錄或I/O錯誤發生在dir:/ data/disk3/dfs/data/current/BP- 208475052-10.165.18.36-1351280731538 /電流/定型/ subdir61/subdir28
二○一三年十二月二十日01:40:29046 WARN org.apache.hadoop.hdfs.server.datanode.DataNode:IOException異常在offerService 的java。 io.IOException:塊池BP-208475052-10.165.18.36-1351280731538未找到
2013-12-20 01:40:29,088錯誤org.apache.hadoop.hdfs.server.datanode.DataNode:BPOfferService中的異常爲塊池BP-208475052-10.165.18。 36-1351280731538(存儲ID DS-737580588-10.165.18.36-50010-1351280778276)服務aspen8hdp19.turner.com/10.165.18.56:54310 顯示java.lang.NullPointerException
2013年12月20日1時40: 34088 WARN org.apache.hadoop.hdfs.server.datanode.DataNode:IOException異常在offerService 產生java.io.IOException:塊池BP-208475052-10.165.18.36-1351280731538沒有找到
所以,我有一些問題:
- 按照我提到的方法是不是夠了?即停止DataNode,移動塊文件對和/或子目錄,重新啓動DataNode。
- 是否需要重新啓動NameNode或其他服務?
- 它爲什麼會抱怨丟失塊或損壞的文件?
- 如何重新啓動DataNode並擺脫這些異常,從而使DN與NN成功通信?
我很感謝您的幫助。 愛德華多。