2013-12-20 62 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

相关问题