복붙노트

[HADOOP] hadoop 0.23.8을 구성하면서 "namenode와의 데이터 노드 거부 통신"오류 발생

HADOOP

hadoop 0.23.8을 구성하면서 "namenode와의 데이터 노드 거부 통신"오류 발생

내 macbook에 hadoop 0.23.8을 설정하려고하는데 다음과 같은 예외를 가지고 실행 중이다.

org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException: Datanode denied communication with namenode: 192.168.1.13:50010
at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDatanode(DatanodeManager.java:549)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.registerDatanode(FSNamesystem.java:2548)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:784)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:394)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1571)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1567)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1262)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1565)

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

<configuration>
<property>
<name>dfs.federation.nameservices</name>
<value>ns1</value>
</property>

<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>192.168.1.13:54310</value>
</property>

<property>
<name>dfs.namenode.http-address.ns1</name>
<value>192.168.1.13:50070</value>
</property>

<property>
<name>dfs.namenode.secondary.http-address.ns1</name>
<value>192.168.1.13:50090</value>
</property>
</configuration>

내가 잘못하고있는 것에 대한 아이디어가 있습니까?

해결법

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

    1.나에게 이름 확인 문제가있는 것 같습니다. 가능한 이유 :

    나에게 이름 확인 문제가있는 것 같습니다. 가능한 이유 :

    Machine is listed in the file defined by dfs.hosts.exclude
    
    dfs.hosts is used and the machine is not listed within that file
    

    또한 호스트 파일에 나열된 시스템의 IP + 호스트 이름이 있는지 확인하십시오.

    HTH

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

    2.2.6.0과 같은 문제가 있었고 shamouda의 대답이 해결되었습니다 (나는 dfs.hosts를 전혀 사용하지 않아서 대답이 될 수 없었습니다.)

    2.6.0과 같은 문제가 있었고 shamouda의 대답이 해결되었습니다 (나는 dfs.hosts를 전혀 사용하지 않아서 대답이 될 수 없었습니다.)

    <property>
      <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
      <value>false</value>
    </property>
    

    hdfs-site.xml에 추가하면 문제를 해결할 수 있습니다.

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

    3.Hadoop 2.6.0에서도 같은 문제가 발생했으며 솔루션은 Tariq의 대답과 다릅니다.

    Hadoop 2.6.0에서도 같은 문제가 발생했으며 솔루션은 Tariq의 대답과 다릅니다.

    DHCP를 사용하여 IP를 동적으로 설정하기 때문에 / etc / hosts에 IP-Host 매핑을 나열 할 수 없었습니다.

    문제는 내 DNS가 역방향 DNS 조회 (예 : IP가 지정된 호스트 이름 조회)를 허용하지 않으며 datode가 namenode로 등록하려고 시도 할 때마다 HDFS가 기본적으로 역 DNS 조회를 사용한다는 것입니다. 다행히 hdfs-site.xml에서 "dfs.namenode.datanode.registration.ip-hostname-check"속성을 false로 설정하면이 동작을 비활성화 할 수 있습니다.

    DNS가 역방향 조회를 허용하지 않는다는 것을 아는 방법? 우분투에서 대답은 "호스트"명령을 사용하는 것입니다. 호스트 이름을 확인할 수 있으면 역방향 조회가 사용됩니다. 실패하면 역방향 조회가 사용되지 않습니다.

    참고 문헌 : 1. http://rrati.github.io/blog/2014/05/07/apache-hadoop-plus-docker-plus-fedora-running-images/ 2. https://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

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

    4.나는이 문제가있다.

    나는이 문제가있다.

    core-site.xml의 이전 구성은 다음과 같습니다.

    <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:12345</value>
    </property>
    

    나중에 내 호스트 이름 (PC 이름)으로 로컬 호스트 이름을 수정했습니다.

    <property>
      <name>fs.default.name</name>
      <value>hdfs://cnu:12345</value>
    </property>
    

    그것은 나를 위해 일했습니다.

  5. ==============================

    5.정보를 위해서. 나는 같은 문제를 겪었고 나의 노예의 호스트 이름에 오타가 있음을 인정했다. 그 반대의 경우 노드 자체가 잘못된 호스트 이름을 가질 수 있습니다.

    정보를 위해서. 나는 같은 문제를 겪었고 나의 노예의 호스트 이름에 오타가 있음을 인정했다. 그 반대의 경우 노드 자체가 잘못된 호스트 이름을 가질 수 있습니다.

  6. from https://stackoverflow.com/questions/17252955/getting-the-following-error-datanode-denied-communication-with-namenode-while by cc-by-sa and MIT license