我在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成功通信?
我很感谢您的帮助。 爱德华多。