我在virtualbox中的Ubuntu11.0.4上安装了Hadoop1.0.4(与我的主机名相同),不知何故数据节点关闭,日志文件中出现以下错误
/************************************************************
STARTUP_MSG: Starting DataNode
STARTUP_MSG: host = VirtualBox/127.0.1.1
STARTUP_MSG: args = []
STARTUP_MSG: version = 1.0.4
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290; compiled by 'hortonfo' on Wed Oct 3 05:13:58 UTC 2012
************************************************************/
2013-08-18 19:52:21,301 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2013-08-18 19:52:21,394 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.
2013-08-18 19:52:21,412 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
2013-08-18 19:52:21,417 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started
2013-08-18 19:52:23,207 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered.
2013-08-18 19:52:23,276 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Source name ugi already exists!
2013-08-18 19:52:26,887 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /app/hadoop/tmp/dfs/data: namenode namespaceID = 457871323; datanode namespaceID = 2066655210
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:232)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:147)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:385)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:299)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1582)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1521)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1539)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1665)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1682)
2013-08-18 19:52:26,903 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at VirtualBox/127.0.1.1
************************************************************/
知道为什么吗?我怎么修?
5条答案
按热度按时间idfiyjo81#
这通常是在格式化namenode而不进行datanode清理并且更改名称空间时产生的。
可能的解决方案:
尝试删除/app/hadoop/tmp/dfs/data目录并重新启动datanode
gj3fmq9x2#
这种事我已经发生过好几次了。如果重新启动数据节点没有帮助,请执行以下操作:
重新启动hadoop
转到/app/hadoop/tmp/dfs/name/current
开放版本(即
vim VERSION
)记录命名空间ID
转到/app/hadoop/tmp/dfs/data/current
开放版本(即
vim VERSION
)用步骤4中记录的名称空间ID替换名称空间ID。
这应该能解决问题。
hc8w905p3#
我丢失了namenode上的数据。我必须用
启动namenode后,由于版本问题,datanode无法启动
然后我还需要删除datanodes中的所有数据。
我可以简单地清理dfs(/{hadoop.tmp.dir}/dfs/data/*)中的数据文件夹,然后重新启动datanode
即
rm -rf /{hadoop.tmp.dir}/dfs/data/*
或删除版本文件(/{hadoop.tmp.dir}/dfs/data/current/version)并重新启动datanode
to94eoyn4#
为了完成上述步骤,我在data文件夹/tmp/data中没有任何文件
neskvpey5#
当我们格式化名称节点时,这是众所周知的问题。请参考以下网址:
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#javaioioexception-不兼容的命名空间ID