3

我尝试使用 bin/start-all.sh 启动 namenode。但是,这个命令不会启动 namenode。我知道如果我执行 bin/hadoop namenode -format ,namenode 将启动,但在这种情况下,我将丢失所有数据。有没有办法在不格式化的情况下启动namenode?

4

2 回答 2

3

您的问题可能与以下有关:

Hadoop 默认将其 NameNode 数据写入 /tmp/hadoop- 文件夹,该文件夹在每次重启后都会被清除。

将以下属性添加到 conf/hdfs-site.xml

<property>
   <name>dfs.name.dir</name>
   <value><path to your desired folder></value>
</property>

“dfs.name.dir”属性允许您控制 Hadoop 写入 NameNode 元数据的位置。

于 2015-09-29T05:43:27.350 回答
1

bin/start-all.sh应该启动namenode,以及datanodes、jobtracker和tasktrackers。因此,请检查名称节点的日志以查找可能的错误。

跳过启动 jobtracker 和 tasktracker 并仅启动 namenode(和 datanodes)的另一种方法是使用以下命令: bin/start-dfs.sh

实际上,bin/start-all.sh相当于使用命令:

bin/start-dfs.sh,启动namenode和datanodes
bin/start-mapred.sh,启动jobtracker和tasktracker。

有关更多详细信息,请访问此页面

于 2014-04-01T11:30:56.130 回答