【问题标题】:Start namenode without formatting启动namenode而不格式化
【发布时间】:2015-09-29 13:43:27
【问题描述】:

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

【问题讨论】:

    标签: hadoop format startup hadoop2


    【解决方案1】:

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

    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 元数据写入何处。

    【讨论】:

    • 赞成这个,它为我解决了这个问题。 (现在 hdfs-site 在 2.x 中位于 etc/hadoop)
    【解决方案2】:

    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

    【讨论】:

    • 你刚刚重申了我发布的内容。
    • 什么意思?根据我从您的问题中了解到的情况,除非您对其进行格式化,否则 namenode 不会启动。你检查过namenode的日志吗?通常,namenode 启动时不需要每次都格式化...
    • 是的,我确实检查了日志。 dfs.data.dir 和 dfs.name.dir 有问题。
    • 请编辑您的问题并发布这些错误消息。通常,这些与用户权限(hadoop 用户的写入权限)有关,甚至与hdfs-site.xml 中的拼写错误有关,但这只是猜测,没有看到错误消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多