복붙노트

[HADOOP] org.apache.hadoop.hbase.PleaseHoldException : 마스터가 초기화 중입니다.

HADOOP

org.apache.hadoop.hbase.PleaseHoldException : 마스터가 초기화 중입니다.

Hbase의 다중 노드 클러스터를 설정하려고합니다. 내가 슬레이브에서 jps를 할 때

5780 Jps
5558 HQuorumPeer
5684 HRegionServer
1963 DataNode
2093 TaskTracker

마스터와 비슷하게

4254 SecondaryNameNode
15226 Jps
14982 HMaster
3907 NameNode
14921 HQuorumPeer
4340 JobTracker

EVerything이 제대로 실행 중입니다. 하지만 hbase 쉘에 테이블을 만들려고 할 때. 오류가 발생했습니다.

ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

내 슬레이브의 regionerver 로그 (region 서버가 실행중인 위치) :

2013-06-11 13:09:53,119 INFO org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to Master server at localhost,60000,137093$
2013-06-11 13:10:53,190 WARN org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException: This server is in the failed servers list: localhost/127.0.0.1:60000
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:425)
        at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1124)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:974)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
        at $Proxy8.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:208)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.getMaster(HRegionServer.java:2037)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:2083)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:744)
        at java.lang.Thread.run(Thread.java:722)
2013-06-11 13:10:53,391 INFO org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to Master server at localhost,60000,137093$

참고로, 저는 또한 마스터와 슬레이브 모두에서 / etc / hosts 파일을 관리했습니다.

127.0.0.1       localhost
127.0.0.1       naresh-PC

다시 / etc / hosts 파일에서 127.0.1.1을 naresh-PC로 변경했습니다. 하지만 여전히이 오류가 발생합니다.

2013-06-11 14:51:17,781 INFO org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to Master server at naresh-pc,60000,137094$
2013-06-11 14:52:17,817 WARN org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
java.net.UnknownHostException: unknown host: naresh-pc
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.<init>(HBaseClient.java:276)
        at org.apache.hadoop.hbase.ipc.HBaseClient.createConnection(HBaseClient.java:255)
        at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1111)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:974)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
        at $Proxy8.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:208)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.getMaster(HRegionServer.java:2037)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:2083)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:744)
        at java.lang.Thread.run(Thread.java:722)

해결법

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

    1.사육사의 모든 상태를 지우십시오.

    사육사의 모든 상태를 지우십시오.

    나는 똑같은 문제를 겪고 있었고,이 접근 방식을 따랐다.

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

    2.슬레이브 노드의 구성을 마스터를 가리 키도록 변경해야합니다. 현재 localhost를 가리키고 실제 마스터에 연결하지 않습니다.

    슬레이브 노드의 구성을 마스터를 가리 키도록 변경해야합니다. 현재 localhost를 가리키고 실제 마스터에 연결하지 않습니다.

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

    3.Docker에서 내 자신의 클러스터를 호스팅하고 있습니다. 내 사건에서 효과가 있었던 것은 다음과 같습니다. HBase 로그 파일에서 오류를 찾아 내고 "Master가 사용하기 위해 다른 호스트 이름을 전달했습니다"

    Docker에서 내 자신의 클러스터를 호스팅하고 있습니다. 내 사건에서 효과가 있었던 것은 다음과 같습니다. HBase 로그 파일에서 오류를 찾아 내고 "Master가 사용하기 위해 다른 호스트 이름을 전달했습니다"

    `[root@docker-iop bin]# grep ERROR /var/log/hbase/hbase-hbase-regionserver-bi-mgmt01.local.log
    2016-10-06 00:05:29,816 ERROR [regionserver/bi-mgmt01.local/111.11.2.3:16020] regionserver.HRegionServer: Master passed us a different hostname to use; was=my-host-name, but now=111.22.33.444'
    

    호스트 파일에서 my-host-name을 111.22.333.444로 매핑하고 HBase를 재시작했습니다.

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

    4.아래의 구성을 가진 완전히 분산 된 hbase 클러스터에서도 동일한 문제가 발생했습니다.

    아래의 구성을 가진 완전히 분산 된 hbase 클러스터에서도 동일한 문제가 발생했습니다.

    RCA : 클러스터 시작시 백업 마스터 노드가 시작되도록 시도되었습니다.

    해결책 모든 hbase 노드에서 $ HBASE_HOME / conf / backup-masters를 비워서 백업 마스터를 제거했습니다.

    그래서 백업 마스터없이 클러스터를 실행했습니다.

    마스터 노드와 마스터 노드가 regionservers로 기능하지 않아야하는지 궁금합니다. HBase 문서는 달리 말합니다.

  5. from https://stackoverflow.com/questions/17038957/org-apache-hadoop-hbase-pleaseholdexception-master-is-initializing by cc-by-sa and MIT license