【发布时间】:2015-09-29 13:43:27
【问题描述】:
我尝试使用 bin/start-all.sh 启动 namenode。但是,这个命令不会启动 namenode。我知道如果我执行 bin/hadoop namenode -format ,namenode 将启动,但在这种情况下,我将丢失所有数据。有没有办法在不格式化的情况下启动namenode?p>
【问题讨论】:
标签: hadoop format startup hadoop2
我尝试使用 bin/start-all.sh 启动 namenode。但是,这个命令不会启动 namenode。我知道如果我执行 bin/hadoop namenode -format ,namenode 将启动,但在这种情况下,我将丢失所有数据。有没有办法在不格式化的情况下启动namenode?p>
【问题讨论】:
标签: hadoop format startup hadoop2
您的问题可能与以下有关:
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 元数据写入何处。
【讨论】:
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。
更多详情,请访问this page。
【讨论】:
hdfs-site.xml 中的拼写错误有关,但这只是猜测,没有看到错误消息。