복붙노트

[HADOOP] get "오류 : ZooKeeper에서 마스터 주소를 가져올 수 없습니다. znode data == null "Hbase 쉘을 사용할 때

HADOOP

get "오류 : ZooKeeper에서 마스터 주소를 가져올 수 없습니다. znode data == null "Hbase 쉘을 사용할 때

Hadoop2.2.0과 Hbase0.98.0을 설치했고 여기에 내가하는 일이 있습니다.

$ ./bin/start-hbase.sh 

$ ./bin/hbase shell

2.0.0-p353 :001 > list

그 때 나는 이것을 얻었다 :

ERROR: Can't get master address from ZooKeeper; znode data == null

이 오류가 발생하는 이유는 무엇입니까? 다른 질문: 기반을 실행하기 전에 ./sbin/start-dfs.sh 및 ./sbin/start-yarn.sh를 실행해야합니까?

또한 ./sbin/start-dfs.sh 및 ./sbin/start-yarn.sh에 사용되는 것은 무엇입니까?

여기 내 conf 문서 중 일부입니다 :

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://127.0.0.1:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

    <property>
        <name>hbase.tmp.dir</name>
        <value>/Users/apple/Documents/tools/hbase-tmpdir/hbase-data</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/Users/apple/Documents/tools/hbase-zookeeper/zookeeper</value>
    </property>
</configuration>
<configuration>

  <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
      <description>The name of the default file system.</description>
  </property>

  <property>
      <name>hadoop.tmp.dir</name>
      <value>/Users/micmiu/tmp/hadoop</value>
      <description>A base for other temporary directories.</description>
  </property>

  <property>
      <name>io.native.lib.available</name>
      <value>false</value>
  </property>

</configuration>
<configuration>

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>

</configuration>

해결법

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

    1.독립 실행 형 HBase에 대한 사육사 관리를하지 않고 HBase를 실행하려는 경우 hbase.rootdir이라는 속성 블록을 제외하고 hbase-site.xml에서 모든 속성 블록을 제거하십시오.

    독립 실행 형 HBase에 대한 사육사 관리를하지 않고 HBase를 실행하려는 경우 hbase.rootdir이라는 속성 블록을 제외하고 hbase-site.xml에서 모든 속성 블록을 제거하십시오.

    이제 /bin/start-hbase.sh를 실행하십시오. HBase에는 자체 보관 인이 함께 제공됩니다.이 보관 인은 /bin/start-hbase.sh를 실행할 때 시작됩니다. 처음에는 사물을 벗어나려고 할 때 충분합니다. 나중에 Zookeeper에 분산 모드 구성을 지정할 수 있습니다.

    hbase.rootdir의 값은 hbase-site.xml에서 hdfs : //127.0.0.1 : 9000 / hbase로 설정되기 때문에 HBase를 실행하기 위해 /sbin/start-dfs.sh를 실행하기 만하면됩니다. file : /// some_location_on_local_filesystem을 사용하여 로컬 파일 시스템의 일부 위치로 변경하면 /sbin/start-dfs.sh도 실행할 필요가 없습니다.

    hdfs : //127.0.0.1 : 9000 / hbase는 HDFS의 장소이며 /sbin/start-dfs.sh는 HDFS 파일 시스템에 액세스하기위한 기본 API를 제공하는 namenode와 datanode를 시작합니다. 원사에 대해 알고 싶으면 http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/YARN.html을 참조하십시오.

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

    2.이것은 VM이나 호스트 컴퓨터가 잠자는 경우에도 발생할 수 있습니다. 사육사는 생존하지 못합니다. VM을 다시 시작하면 문제가 해결됩니다.

    이것은 VM이나 호스트 컴퓨터가 잠자는 경우에도 발생할 수 있습니다. 사육사는 생존하지 못합니다. VM을 다시 시작하면 문제가 해결됩니다.

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

    3.사육사를 시작한 다음 Hbase-shell을 실행해야합니다.

    사육사를 시작한 다음 Hbase-shell을 실행해야합니다.

    {HBASE_HOME}/bin/hbase-daemons.sh {start,stop} zookeeper
    

    hbase-env.sh에서이 속성을 확인하고 싶을 수 있습니다.

    # Tell HBase whether it should manage its own instance of Zookeeper or not.
    export HBASE_MANAGES_ZK=false
    

    출처 - 사육사 참조

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

    4.한 가지 빠른 해결책은 hbase를 다시 시작하는 것입니다.

    한 가지 빠른 해결책은 hbase를 다시 시작하는 것입니다.

    1) Stop-hbase.sh
    2) Start-hbase.sh
    
  5. ==============================

    5.나는 똑같은 오류가 있었다. Linux 방화벽이 연결을 차단하고있었습니다. 텔넷을 통해 포트를 테스트 할 수 있습니다. 빠른 수정은 방화벽을 끄고 수정 여부를 확인하는 것입니다.

    나는 똑같은 오류가 있었다. Linux 방화벽이 연결을 차단하고있었습니다. 텔넷을 통해 포트를 테스트 할 수 있습니다. 빠른 수정은 방화벽을 끄고 수정 여부를 확인하는 것입니다.

    모든 노드에서 방화벽을 완전히 비활성화하십시오. 참고 :이 명령은 컴퓨터를 재부팅해도 그대로 유지됩니다.

    systemctl stop firewalld
    

    장기적인 수정은 hbase 포트를 허용하도록 방화벽을 구성해야한다는 것입니다.

    참고로, 사용중인 hbase 버전은 다른 포트를 사용할 수 있습니다. https://issues.apache.org/jira/browse/HBASE-10123

  6. ==============================

    6.Hbase 쉘의 출력은 많은 잘못된 설정으로 인해이 메시지가 발생하는 상당히 높은 수준입니다. 스스로 디버깅을 돕기 위해 hbase 로그를 살펴 보는 것이 훨씬 낫습니다.

    Hbase 쉘의 출력은 많은 잘못된 설정으로 인해이 메시지가 발생하는 상당히 높은 수준입니다. 스스로 디버깅을 돕기 위해 hbase 로그를 살펴 보는 것이 훨씬 낫습니다.

    /var/log/hbase 
    

    문제의 근본 원인을 파악합니다.

    나 역시 같은 문제가 있었다. 나에게 나의 근본 원인은 hbase-master와 충돌하는 포트 번호를 가진 hadoop-kms 때문이었습니다. 둘 다 포트 16000을 사용하므로 hbase 셸을 호출 할 때 HMaster가 시작되지 않았습니다. 내가 고칠 때, 내 기지가 일했다.

    다시, kms 포트 충돌이 근원이 아닐 수도 있습니다. 근본 원인을 찾기 위해 / var / log / hbase를 강력하게 제안하십시오.

  7. ==============================

    7.내 경우에는 hbase을 실행하는 것과 같은 오류가 있습니다. hbase-site.xml에 동물원 등록 정보를 포함하지 않았고 위의 오류 메시지가 표시되었습니다 (Apache hbase 안내서에 기반하여 rootdir 및 배포판이 필수적입니다). ).

    내 경우에는 hbase을 실행하는 것과 같은 오류가 있습니다. hbase-site.xml에 동물원 등록 정보를 포함하지 않았고 위의 오류 메시지가 표시되었습니다 (Apache hbase 안내서에 기반하여 rootdir 및 배포판이 필수적입니다). ).

    또한 실제로 내 Hregion 서버와 Hmaster가 제대로 작동하지 않는 것을 확인하는 jps 명령의 출력을 추적 할 수 있습니다.

    중지 및 시작 후 (리셋과 같은), 나는이 두 가지를 실행하고 hbase를 올바르게 실행할 수 있습니다.

  8. ==============================

    8.VM웨어 나 가상 박스에서 발생하는 경우 cloudera를 명령 init1로 다시 시작하십시오. 루트 권한이 있는지 확인하고 다시 시도해보십시오. :)

    VM웨어 나 가상 박스에서 발생하는 경우 cloudera를 명령 init1로 다시 시작하십시오. 루트 권한이 있는지 확인하고 다시 시도해보십시오. :)

  9. from https://stackoverflow.com/questions/22663484/get-error-cant-get-master-address-from-zookeeper-znode-data-null-when-us by cc-by-sa and MIT license