복붙노트

[HADOOP] 이상한 DNS 서버로 인해 Hadoop 및 HBase가 오작동 함

HADOOP

이상한 DNS 서버로 인해 Hadoop 및 HBase가 오작동 함

내가 Hadoop이나 HBase를 오작동시키는 DNS 서버를 이해할 수있는 이상한 네트워크가있다.

내 호스트 이름을 내 컴퓨터에서 알 수없는 일부 주소 (즉, 그러한 인터페이스가 없음)로 해결합니다.

/ etc / hosts에 다음 항목이 있으면 Hadoop이 작동합니다.

127.0.0.1     localhost
127.0.1.1     myhostname

"127.0.1.1 myhostname"항목이 없으면 HDFS에 파일 업로드가 실패하고 1 대신 파일 번호가 0 인 파일 만 복제 할 수 있다고 불평합니다.

하지만이 경우 HBase가 작동하지 않습니다. HBase 셸에서 테이블을 만들면 NotAllMetaRegionsOnlineException이 발생합니다 (실제로 HMaster가 myhostname에 대해 DNS 서버에서 반환 한 잘못된 주소에 바인딩하려는 경우).

다른 네트워크에서는 다음과 같은 / etc / hosts를 사용하고 있습니다.

127.0.0.1   localhost
192.168.1.1 myhostname

그리고 Hadoop과 HBase가 모두 작동합니다. 문제는 두 번째 네트워크에서 주소가 동적이며 이상한 DNS에서 반환 한 결과를 재정의하기 위해 / etc / hosts에 주소를 나열 할 수 없다는 것입니다.

Hadoop은 가상 분산 모드로 실행됩니다. HBase는 또한 단일 노드에서 실행됩니다.

DNS 서버의 동작을 변경하는 것은 옵션이 아닙니다. hbase / conf / regionservers에서 "localhost"를 127.0.0.1로 변경해도 아무런 변화가 없습니다.

누군가가 어떻게 인터넷 연결 (나는 실제로 Teamviewer를 통해 클라이언트의 컴퓨터에서 작동)을 유지하면서 그 행동을 무시할 수있는 방법을 제안 할 수 있습니까? 또는 호스트 이름을 사용하여 바인딩 할 주소를 결정하지 못하게하는 HBase (또는 사육사 사육사)를 구성하는 방법은 무엇입니까?

해결법

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

    1.다행히도이 DNS 서버 문제에 대한 해결책을 찾았습니다.

    다행히도이 DNS 서버 문제에 대한 해결책을 찾았습니다.

    DNS 서버가 로컬 호스트 이름을 쿼리 할 때 잘못된 주소를 반환했습니다. 기본적으로 HBase는 로컬 호스트 이름에 대한 DNS 역방향 조회를 수행하여 바인딩 할 위치를 결정합니다. DNS 서버가 반환 한 주소가 유효하지 않기 때문에 HMaster를 바인딩 할 수 없었습니다.

    해결 방법 : hbase / conf / hbase-site.xml에서 master 및 regionserver에 사용될 인터페이스를 명시 적으로 지정하십시오.

    <configuration>
      <property>
        <name>hbase.master.dns.interface</name>
        <value>lo</value>
      </property>
      <property>
        <name>hbase.regionserver.dns.interface</name>
        <value>lo</value>
      </property>
    </configuration>
    

    이 경우, 마스터 및 regionserver 모두에 사용할 루프백 인터페이스 (lo)를 지정했습니다.

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

    2.DNS 문제를 확인하기 위해 작성한 간단한 도구입니다. https://github.com/sujee/hadoop-dns-checker

    DNS 문제를 확인하기 위해 작성한 간단한 도구입니다. https://github.com/sujee/hadoop-dns-checker

  3. from https://stackoverflow.com/questions/7939088/weird-dns-server-causes-hadoop-and-hbase-to-malfunction by cc-by-sa and MIT license