2013-12-20 61 views
5

我在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成功通信?

我很感謝您的幫助。 愛德華多。

回答

2

我要在這裏回答我的問題。

我有這個問題是通過具有後我搬到數據塊中的錯誤的文件/目錄權限和所有權引起的。我做的舉動爲根,移動的文件結束了以下權限:

drwx -----牛逼2根12288根12月19日23:14 subdir28

一旦我改回了原來的, DN正確重新啓動,NN停止報告丟失的塊或損壞的文件。這是它應該擁有的權限:

drwxr-xr-t 2 hdfs hadoop 12288 Dec 20 11:47 subdir28

相關問題