只有三分之一的数据节点是在Hadoop中启动的



我有一个主集群和三个从集群。NO虚拟环境。一切都在网络中。在Namenode中执行start-dfs.sh后,我看到Namenode和其中一个datanode正常启动。但是其他两个datanode给出了以下异常(日志中的ip地址更改除外)。在任何时候,只有三分之一的数据节点正常工作。

在停止和启动集群之后,我看到在任何给定的时间,只有一个slave (datanode)在运行。但是正在运行的似乎是随机的。有时我有从属1,有时从属2,有时从属3运行。

我不完全清楚这里出了什么问题。但是我看到一个unregisteredNodeException出现在datanodo的日志文件中,无法启动

错误信息如下:

2014-06-26 13:00:54,866 INFO org.mortbay.log: Started SelectChannelConnector@0.0.0.0:50075
2014-06-26 13:00:54,870 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source jvm registered.
2014-06-26 13:00:54,871 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source DataNode registered.
2014-06-26 13:00:54,893 INFO org.apache.hadoop.ipc.Server: Starting SocketReader
2014-06-26 13:00:54,894 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source RpcDetailedActivityForPort50020 registered.
2014-06-26 13:00:54,894 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source RpcActivityForPort50020 registered.
2014-06-26 13:00:54,896 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: dnRegistration = DatanodeRegistration(dig14.baker:50010, storageID=DS-1161815082-172.16.30.208-50010-1403746077641, infoPort=50075, ipcPort=50020)
2014-06-26 13:00:54,906 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Finished generating blocks being written report for 1 volumes in 0 seconds
2014-06-26 13:00:54,910 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.protocol.UnregisteredDatanodeException: Data node 172.16.130.214:50010 is attempting to report storage ID DS-1161815082-172.16.30.208-50010-1403746077641. Node 172.16.130.213:50010 is expected to serve this storage.
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getDatanode(FSNamesystem.java:5049)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.processBlocksBeingWrittenReport(FSNamesystem.java:3869)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.blocksBeingWrittenReport(NameNode.java:1109)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:416)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1426)

这是我的core-site.xml:

<configuration>
<property>
<name>fs.default.name</name>
 <value>hdfs://dig11:10001</value>
<!-- <value>hdfs://localhost:10001</value> -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/scratch/USERS/sridhar/hadoop</value>
</property>
</configuration>

一个datanode上的数据由另一个datanode提供,而namenode拒绝。

如果它是一个测试环境,你愿意失去hdfs中的任何现有数据,你可以清理datanode目录和namenode目录,并重新格式化DFS。

删除dfs.name.dir, dfs.namenode.name.dir中的所有现有数据。

最后用hdfs namenode -format重新格式化DFS

相关内容

  • 没有找到相关文章