【问题标题】:Unable to start CDH4 secondary name node: Invalid URI for NameNode address无法启动 CDH4 辅助名称节点:NameNode 地址的 URI 无效
【发布时间】:2012-12-06 22:30:03
【问题描述】:

我一直在尝试设置 hadoop 的 CDH4 安装。我有 12 台机器,标记为 hadoop01 - hadoop12,并且名称节点、作业跟踪器和所有数据节点都已正常启动。我可以查看 dfshealth.jsp 并看到它找到了所有数据节点。

但是,每当我尝试启动辅助名称节点时,它都会出现异常:

Starting Hadoop secondarynamenode:                         [  OK  ]
starting secondarynamenode, logging to /var/log/hadoop-hdfs/hadoop-hdfs-secondarynamenode-hadoop02.dev.terapeak.com.out
Exception in thread "main" java.lang.IllegalArgumentException: Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority.
        at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:324)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:312)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.getServiceAddress(NameNode.java:305)
        at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.initialize(SecondaryNameNode.java:222)
        at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.<init>(SecondaryNameNode.java:186)
        at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.main(SecondaryNameNode.java:578)

这是我在辅助名称节点上的 hdfs-site.xml 文件:

<configuration>
  <property>
    <name>dfs.name.dir</name>
    <value>/data/1/dfs/nn</value>
  </property>
  <property>
    <name>dfs.namenode.http-address</name>
    <value>10.100.20.168:50070</value>
    <description>
      The address and the base port on which the dfs NameNode Web UI will listen.
      If the port is 0, the server will start on a free port.
    </description>
  </property>
  <property>
    <name>dfs.namenode.checkpoint.check.period</name>
    <value>3600</value>
  </property>
  <property>
    <name>dfs.namenode.checkpoint.txns</name>
    <value>40000</value>
  </property>
  <property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>/var/lib/hadoop-hdfs/cache</value>
  </property>
  <property>
    <name>dfs.namenode.checkpoint.edits.dir</name>
    <value>/var/lib/hadoop-hdfs/cache</value>
 </property>
 <property>
    <name>dfs.namenode.num.checkpoints.retained</name>
    <value>1</value>
  </property>
 <property>
    <name>mapreduce.jobtracker.restart.recover</name>
    <value>true</value>
  </property>

</configuration>

dfs.namenode.http-address 的值似乎有问题,但我不确定是什么。它应该以 http:// 还是 hdfs:// 开头?我尝试在 lynx 中调用 10.100.20.168:50070 并显示一个页面。有什么想法吗?

【问题讨论】:

    标签: hadoop cloudera


    【解决方案1】:

    看起来我缺少辅助名称节点上的 core-site.xml 配置。添加了它,并且该过程正常启动。

    核心站点.xml:

    <configuration>
     <property>
      <name>fs.defaultFS</name>
      <value>hdfs://10.100.20.168/</value>
     </property>
    </configuration>
    

    【讨论】:

    • 如果我在单机模式下遇到同样的错误怎么办(整个东西都用完了我的笔记本电脑?我的 core-site.xml 有这个条目:&lt;property&gt; &lt;name&gt;fs.default.name&lt;/name&gt; &lt;value&gt;hdfs://localhost:8020&lt;/value&gt; &lt;/property&gt;
    • 在我的情况下,当我删除端口时它起作用了。因此,对于独立安装,我的 core-site.xml 如下所示: fs.defaultFShdfs://localhost/
    【解决方案2】:

    如果您正在运行单节点集群,请确保您已正确设置 HADOOP_PREFIX 变量,如链接所示:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

    即使我遇到了与您相同的问题,但通过设置此变量得到了纠正

    【讨论】:

      猜你喜欢
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多