Hadoop - namenode没有启动

时间:2013-05-23 11:41:42

标签: hadoop

我正在尝试以root用户身份运行hadoop,当Hadoop文件系统运行时,我执行了namenode格式命令hadoop namenode -format

在此之后,当我尝试启动名称节点服务器时,它会显示如下错误

13/05/23 04:11:37 ERROR namenode.FSNamesystem: FSNamesystem initialization failed.
java.io.IOException: NameNode is not formatted.
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:330)
        at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:100)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:411)

我试图搜索任何解决方案,但找不到任何明确的解决方案。

有人可以建议吗?

感谢。

7 个答案:

答案 0 :(得分:21)

很酷,我找到了解决方案。

停止所有正在运行的服务器

1) stop-all.sh 

编辑文件/usr/local/hadoop/conf/hdfs-site.xml并添加以下配置(如果缺少

<property>
    <name>dfs.data.dir</name>
    <value>/app/hadoop/tmp/dfs/name/data</value> 
    <final>true</final> 
    </property> 
    <property> 
    <name>dfs.name.dir</name>
    <value>/app/hadoop/tmp/dfs/name</value> 
    <final>true</final> 
</property>

启动HDFS和MapReduce守护进程

2) start-dfs.sh
3) start-mapred.sh

然后现在运行其余步骤来运行this link

中给出的map reduce示例

注意:如果直接命令没有运行,您应该运行命令bin/start-all.sh

答案 1 :(得分:15)

需要格式化DFS。只需在停止所有然后重新启动后发出以下命令。

hadoop namenode -format

答案 2 :(得分:2)

当namenode停止时,

格式化hdfs。(就像最顶层的答案一样)。

我添加了更多细节。

FORMAT命令将检查或创建path / dfs / name,并初始化或重新启动它。 然后运行start-dfs.sh将运行namenode,datanode,然后运行namesecondary。 当namenode检查不存在path / dfs / name或者没有初始化时,它会发生致命错误,然后退出。 这就是为什么namenode无法启动的原因。

您可以查看更多详情HADOOP_COMMON / logs / XXX.namenode.log

答案 3 :(得分:1)

确保您为namenode指定的目录完全为空。像所述目录中的“lost + found”文件夹之类的东西会触发此错误。

答案 4 :(得分:0)

hdfs-site.xml你的价值是错误的。您输入了错误的文件夹,这就是为什么不启动名称节点。

答案 5 :(得分:0)

首先是mkdir [文件夹],然后设置hdfs-site.xml然后格式化

答案 6 :(得分:0)

确保名称(dfs.name.dir)和data(dfs.data.dir)文件夹的目录在hdfs-site.xml中正确列出