首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NameNode地址的URI无效

NameNode地址的URI无效
EN

Stack Overflow用户
提问于 2014-05-14 13:29:32
回答 4查看 17.4K关注 0票数 9

我正在尝试设置一个Hadoophadoop集群,其中一个主节点包含namenodesecondarynamenodejobtracker,另外两个节点包含datanodetasktrackerCloudera版本为4.6,操作系统为ubuntu precise x64。此外,此集群是从AWS实例创建的。也设置了ssh passwordlessJava安装Oracle-7。

每当我执行sudo service hadoop-hdfs-namenode start时,我都会得到:

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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 dnsfqdn,但结果是相同的。目录/etc/hadoop/conf.empty如下所示:

代码语言:javascript
复制
-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

代码语言:javascript
复制
<slave1-ip>
<slave2-ip>

正在执行中

代码语言:javascript
复制
update-alternatives --get-selections | grep hadoop
hadoop-conf                    auto     /etc/hadoop/conf.empty

我做了很多搜索,但没有找到任何可以帮助我解决问题的东西。有人能提供一些线索吗?发生了什么事?

EN

回答 4

Stack Overflow用户

发布于 2017-08-30 17:51:02

我也面临着同样的问题,并通过格式化namenode进行了修复。下面是命令:

代码语言:javascript
复制
hdfs namenode -format

core-site.xml条目为:

代码语言:javascript
复制
<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
   </property>
</configuration>

这肯定会解决这个问题。

票数 13
EN

Stack Overflow用户

发布于 2016-04-20 02:20:09

我也遇到了同样的事情。我发现我必须向hdfs-site.xml添加一个核心属性来匹配fs.defaultFS -site.xml中的fs.defaultFS属性:

代码语言:javascript
复制
<property>
      <name>fs.defaultFS</name>
      <value>hdfs://<master-ip>:8020</value>
</property>

添加此命令后,辅助namenode启动正常。

票数 4
EN

Stack Overflow用户

发布于 2014-08-26 16:46:59

确保已按照链接:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html中的指示正确设置了HADOOP_PREFIX变量

就连我也面临着和你一样的问题,通过设置这个变量得到了纠正

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23646308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档