복붙노트

[HADOOP] NameNode 주소의 URI가 잘못되었습니다.

HADOOP

NameNode 주소의 URI가 잘못되었습니다.

나는 clendera Hadoop 클러스터를 설정하려고하는데, master 노드는 namenode, secondarynamenode 및 jobtracker를 포함하고 다른 두 노드는 datanode 및 tasktracker를 포함합니다. Cloudera 버전은 4.6, OS는 우분투 정확한 x64입니다. 또한이 클러스터는 AWS 인스턴스에서 생성됩니다. ssh passwordless는 Java instalation Oracle-7로 설정되었습니다.

내가 sudo 서비스 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>

공용 IP, 개인 IP, 공용 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

슬레이브는 두 개의 슬레이브 머신의 IP 주소를 나열합니다.

<slave1-ip>
<slave2-ip>

실행 중

update-alternatives --get-selections | grep hadoop
hadoop-conf                    auto     /etc/hadoop/conf.empty

나는 많은 수색을했지만 내 문제를 해결할 수있는 어떤 것도 얻지 못했습니다. 누군가가 어떤 일이 일어나고 있는지 알 수 있습니까?

해결법

  1. ==============================

    1.나도 같은 문제에 직면했고 namenode를 형식화하여 수정했다. 다음은 명령입니다.

    나도 같은 문제에 직면했고 namenode를 형식화하여 수정했다. 다음은 명령입니다.

    hdfs namenode -format
    

    core-site.xml 항목은 다음과 같습니다.

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

    그것은 확실히 문제를 해결할 것입니다.

  2. ==============================

    2.나는이 같은 일을 만났다. core-site.xml의 fs.defaultFS 속성과 일치시키기 위해 fs.defaultFS 속성을 hdfs-site.xml에 추가해야한다는 것을 알았습니다.

    나는이 같은 일을 만났다. core-site.xml의 fs.defaultFS 속성과 일치시키기 위해 fs.defaultFS 속성을 hdfs-site.xml에 추가해야한다는 것을 알았습니다.

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

    일단 내가 이것을 추가하면 보조 namenode가 OK로 시작됩니다.

  3. ==============================

    3.링크에 표시된대로 HADOOP_PREFIX 변수를 올바르게 설정했는지 확인하십시오. http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

    링크에 표시된대로 HADOOP_PREFIX 변수를 올바르게 설정했는지 확인하십시오. http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

    심지어 나는 당신과 똑같은 문제에 직면했고,이 변수를 설정함으로써 정류되었다.

  4. ==============================

    4.dfs.datanode.data.dir에 대해 잘못된 구문을 사용했을 수도 있습니다. 또는 hdfs-site.xml의 dfs.namenode.data.dir. 값을 놓치거나 잘못 입력하면이 오류가 발생합니다. 구문 확인         file : /// home / hadoop / hdfs /

    dfs.datanode.data.dir에 대해 잘못된 구문을 사용했을 수도 있습니다. 또는 hdfs-site.xml의 dfs.namenode.data.dir. 값을 놓치거나 잘못 입력하면이 오류가 발생합니다. 구문 확인         file : /// home / hadoop / hdfs /

  5. from https://stackoverflow.com/questions/23646308/invalid-uri-for-namenode-address by cc-by-sa and MIT license