NameNode地址的URI无效

时间:2014-05-14 05:29:32

标签: java xml hadoop cloudera

我正在尝试设置一个Cloudera Hadoop群集,其主节点包含namenodesecondarynamenodejobtracker,另外两个节点包含{ {1}}和datanodetasktracker版本为4.6,操作系统是ubuntu精确x64。此外,此群集是从AWS实例创建的。 Cloudera也已设置ssh passwordless安装Oracle-7。

每当我执行Java时,我得到:

sudo service hadoop-hdfs-namenode start

我的2014-05-14 05:08:38,023 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join 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:329) at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:317) at org.apache.hadoop.hdfs.server.namenode.NameNode.getRpcServerAddress(NameNode.java:370) at org.apache.hadoop.hdfs.server.namenode.NameNode.loginAsNameNodeUser(NameNode.java:422) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:442) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:621) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:606) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1177) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1241)

core-site.xml

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://<master-ip>:8020</value> </property> </configuration>

mapred-site.xml

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>hdfs://<master-ip>:8021</value> </property> </configuration>

hdfs-site.xml

我尝试使用<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> public ipprivate-ippublic dns,但结果是一样的。 目录fqdn如下所示:

/etc/hadoop/conf.empty

-rw-r--r-- 1 root root 2998 Feb 26 10:21 capacity-scheduler.xml -rw-r--r-- 1 root hadoop 1335 Feb 26 10:21 configuration.xsl -rw-r--r-- 1 root root 233 Feb 26 10:21 container-executor.cfg -rwxr-xr-x 1 root root 287 May 14 05:09 core-site.xml -rwxr-xr-x 1 root root 2445 May 14 05:09 hadoop-env.sh -rw-r--r-- 1 root hadoop 1774 Feb 26 10:21 hadoop-metrics2.properties -rw-r--r-- 1 root hadoop 2490 Feb 26 10:21 hadoop-metrics.properties -rw-r--r-- 1 root hadoop 9196 Feb 26 10:21 hadoop-policy.xml -rwxr-xr-x 1 root root 332 May 14 05:09 hdfs-site.xml -rw-r--r-- 1 root hadoop 8735 Feb 26 10:21 log4j.properties -rw-r--r-- 1 root root 4113 Feb 26 10:21 mapred-queues.xml.template -rwxr-xr-x 1 root root 290 May 14 05:09 mapred-site.xml -rw-r--r-- 1 root root 178 Feb 26 10:21 mapred-site.xml.template -rwxr-xr-x 1 root root 12 May 14 05:09 masters -rwxr-xr-x 1 root root 29 May 14 05:09 slaves -rw-r--r-- 1 root hadoop 2316 Feb 26 10:21 ssl-client.xml.example -rw-r--r-- 1 root hadoop 2251 Feb 26 10:21 ssl-server.xml.example -rw-r--r-- 1 root root 2513 Feb 26 10:21 yarn-env.sh -rw-r--r-- 1 root root 2262 Feb 26 10:21 yarn-site.xml 列出了两台从机的slaves

ip addresses

执行

<slave1-ip>
<slave2-ip>

我做了很多搜索,但没有得到任何可以帮助我解决问题的东西。有人能提供任何线索吗?

4 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,并通过格式化namenode来修复。以下是命令:

hdfs namenode -format

core-site.xml条目是:

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

这肯定会解决问题。

答案 1 :(得分:3)

我遇到了同样的事情。我发现我必须将fs.defaultFS属性添加到hdfs-site.xml以匹配core-site.xml中的fs.defaultFS属性:

<property>
      <name>fs.defaultFS</name>
      <value>hdfs://<master-ip>:8020</value>
</property>

一旦我添加了这个,二级名称节点就开始了。

答案 2 :(得分:2)

确保已正确设置HADOOP_PREFIX变量,如链接中所示: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

即使我遇到与您相同的问题,也可以通过设置此变量来解决问题

答案 3 :(得分:0)

你可能为dfs.datanode.data.dir提供了错误的语法 或hdfs-site.xml中的dfs.namenode.data.dir。如果您错过/在值中,您将收到此错误。 检查语法         文件:///家/ hadoop的/ HDFS /