복붙노트

[HADOOP] 3 번의 재시도 후 ZooKeeper가 실패했습니다.

HADOOP

3 번의 재시도 후 ZooKeeper가 실패했습니다.

Hadoop-1.2.1 및 HBase-0.94.11을 의사 배포 모드로 실행하고 있습니다.

정전으로 인해 Hadoop 및 HBase 설치가 중단되었습니다. 다음에 HBase 셸에서 내 컴퓨터와 의사 배포가 다시 시작되면 HBase가 다음 오류로 인해 작업을 중단했습니다.

13/11/27 13:53:27 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
13/11/27 13:53:27 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode (/hbase/hbaseid)
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:172)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:450)
    at org.apache.hadoop.hbase.zookeeper.ClusterId.readClusterIdZNode(ClusterId.java:61)
    at org.apache.hadoop.hbase.zookeeper.ClusterId.getId(ClusterId.java:50)
    at org.apache.hadoop.hbase.zookeeper.ClusterId.hasId(ClusterId.java:44)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.ensureZookeeperTrackers(HConnectionManager.java:720)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:789)
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:129)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

다음은 프로세스입니다.

hduser@user-ubuntu:~$ jps
16914 NameNode
19955 Jps
29460 Main
17728 TaskTracker
19776 HMaster
17490 JobTracker
17392 SecondaryNameNode

해결법

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

    1.Zookeeper 프로세스가 실행 중입니까 (jps 목록에 QuorumPeerMain 항목이 표시되지 않습니까)? jps 스택이 실행중인 모든 Java 프로세스를 표시하지 않을 수 있습니다. ps axww | grep QuorumPeerMain.

    Zookeeper 프로세스가 실행 중입니까 (jps 목록에 QuorumPeerMain 항목이 표시되지 않습니까)? jps 스택이 실행중인 모든 Java 프로세스를 표시하지 않을 수 있습니다. ps axww | grep QuorumPeerMain.

    사육사가 시작을 거부하면 로그를 검사하여 스택 추적 단서가 있는지 확인하십시오

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

    2.사육사 정족수 프로세스가 실행되고 있지 않은 것은 간단합니다. 그렇다면 다른 java 프로세스가 있었을 것입니다.

    사육사 정족수 프로세스가 실행되고 있지 않은 것은 간단합니다. 그렇다면 다른 java 프로세스가 있었을 것입니다.

    hduser@user-ubuntu:~$ jps
    16914 NameNode
    19955 Jps
    29460 Main
    17728 TaskTracker
    19776 HMaster
    17490 JobTracker
    17392 SecondaryNameNode
    

    xxxxx HQuorumPeer

    Zookeeper는 HBase 클러스터 관리에 필요합니다.

    가능한 해결책: 기본적으로 HBase는 사육사를 관리합니다. 즉, 사육사 쿼럼 (사육사 노드의 클러스터)을 시작하고 중지합니다. 설정을 확인하려면 conf / hbase-evn.sh 파일 (hbase 디렉토리)에 다음 줄이 있어야합니다.

    export HBASE_MANAGES_ZK=true
    

    HBase에게 사육사의 자체 인스턴스를 관리해야하는지 여부를 기본적으로 알려줍니다. false로 설정하면 true로 편집하십시오.

    또한 conf / hbase-site.xml에서 HBase conf를 확인하십시오.

    pseudo-distributed 모드에서 작동해야하는 최소 conf는 다음과 같습니다.

    <configuration>
    <property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
    </property>
    <property>
        <name>hbase.rootdir</name>
       <value>hdfs://localhost:9000/hbase</value>   
      </property>
      <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/<yourusername>/zookeeper</value>
      </property>
    </configuration>
    

    HBase가 실행 중이면 중지하십시오.

    $ ./bin/stop-hbase.sh
    

    필요한 변경을하고 다시 시작하십시오.

    $ ./bin/start-hbase.sh
    

    도움이 될만한 답변 : 1 2

  3. from https://stackoverflow.com/questions/20239072/zookeeper-exists-failed-after-3-retries by cc-by-sa and MIT license