2012-12-06 34 views
6

我一直在尝试设置hadoop的CDH4安装。我有12台机器,标有hadoop01 - hadoop12,名称节点,作业跟踪器,所有数据节点都已正常启动。我可以查看dfshealth.jsp并查看它是否找到了所有的数据节点。无法启动CDH4辅助名称节点:NameNode地址的URI无效

然而,每当我试图启动辅助名称节点它提供了一个例外:

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,并显示一个页面。有任何想法吗?

回答

7

看起来我缺少辅助名称节点上的core-site.xml配置。补充说,过程正常开始。

核心的site.xml:

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

如果我在独立模式下得到同样的错误(整个事情用完我的笔记本电脑?)我的core-site.xml有这样的条目:'' fs.default.name HDFS://本地主机:8020 ' –

+0

在我来说,当我删除端口,它的工作。因此,对于单机安装我的核心-site.xml中看起来如下: <配置> fs.defaultFS HDFS://本地主机/