0

我无法启动我的 Hadoop 数据节点。我做了所有我能做的研究,但没有一种方法有助于解决我的问题。这是我尝试使用它启动时的终端控制台输出

hadoop datanode -start

这就是发生的事情:

root@Itanium:~/Desktop/hadoop# hadoop datanode -start
Warning: $HADOOP_HOME is deprecated.

13/09/29 22:11:42 INFO datanode.DataNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting DataNode
STARTUP_MSG:   host = Itanium/127.0.1.1
STARTUP_MSG:   args = [-start]
STARTUP_MSG:   version = 1.2.1
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013
STARTUP_MSG:   java = 1.7.0_25
************************************************************/
Usage: java DataNode
           [-rollback]
13/09/29 22:11:42 INFO datanode.DataNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at Itanium/127.0.1.1
************************************************************/
root@Itanium:~/Desktop/hadoop# jps
31438 SecondaryNameNode
32013 Jps
31818 TaskTracker
1146 Bootstrap
    31565 JobTracker
    30930 NameNode

root@Itanium:~/Desktop/hadoop# 

正如我们所见,DataNode 尝试启动但随后关闭。一直以来,我一直在 NameNode 启动时遇到问题。我曾经通过手动启动它来解决这个问题

start-dfs.sh

现在问题出在 DataNode 上。我真的很感谢您为解决此问题提供的所有帮助。

还有一个更通用的问题。为什么 Hadoop 显示出这种不一致的行为。我确定我没有更改任何 *-site.xml 设置。

4

3 回答 3

1

使用这个命令hadoop datanode -rollback

于 2013-09-30T07:44:35.710 回答
1

我也有类似的问题。查看 Anup 发布的评论“似乎是 namespaceID 不匹配的问题”,我找到了一个参考资料,告诉我如何解决我的问题。 http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#caveats

我查看了 DataNode 未启动的从节​​点上的日志文件。他们都有以下例外:

2014-11-05 10:26:14,289 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /scratch/hdfs/data/srinivasand: namenode namespaceID = 1296690356; datanode namespaceID = 1228298945                                                                                                                                   
        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)

修复这个异常解决了这个问题。

解决方法是 a) 删除 dfs 数据目录。使用 namenode -format 重新格式化。b) 更新 VERSION 文件,使两个命名空间 ID 匹配。

我能够使用选项 b),之后数据节点成功启动。

导致此问题的错误报告记录在:https ://issues.apache.org/jira/browse/HDFS-107

于 2014-11-05T18:49:01.587 回答
0

我遇到过同样的问题,原来50010端口被其他应用程序占用了,停止应用程序,重新启动Hadoop

于 2015-11-11T07:41:48.383 回答