복붙노트

[HADOOP] / hbase 오류에 대한 Hbase 클라이언트 ConnectionLoss

HADOOP

/ hbase 오류에 대한 Hbase 클라이언트 ConnectionLoss

나는 완전히 미쳤어.

설치된 Hadoop / Hbase가 모두 실행 중입니다.

/opt/jdk1.6.0_24/bin/jps
23261 ThriftServer
22582 QuorumPeerMain
21969 NameNode
23500 Jps
23021 HRegionServer
22211 TaskTracker
22891 HMaster
22117 SecondaryNameNode
21779 DataNode
22370 Main
22704 JobTracker

가상 분산 환경.

hbase 셸

'list'를 실행하고 올바른 결과를 얻고 있습니다.

hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.90.1-cdh3u0, r, Fri Mar 25 16:10:51 PDT 2011

hbase(main):001:0> status
1 servers, 0 dead, 8.0000 average load

루비와 절약을 통해 연결할 때 모든 것이 잘 작동합니다. 우리는 데이터를 추가하고, 시스템에 들어가고, 쿼리 / 스캔을 할 수 있습니다. 모든게 잘된 것 같습니다.

그러나 Java로 연결할 때 :

groovy> import org.apache.hadoop.hbase.HBaseConfiguration 
groovy> import org.apache.hadoop.hbase.client.HBaseAdmin 
groovy> conf = HBaseConfiguration.create() 
groovy> conf.set("hbase.master","127.0.0.1:60000"); 
groovy> hbase = new HBaseAdmin(conf); 

Exception thrown

org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:1000)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:303)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:294)
    at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156)
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:84)

나는 그 원인을 찾으려고 노력해 왔지만, 전혀 실마리가 없습니다. 모든 것이 올바르게 설치되어있는 것 같습니다.

netstat -lnp|grep 60000
tcp6       0      0 :::60000                :::*                    LISTEN      22891/java  

괜찮아 보인다.

# telnet localhost 60000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

+ 아무것도 입력하지 않으면 연결하고 죽습니다. (생각이 맞는지 모르겠지만, 9090에 대한 절약은 똑같습니다).

누구든지 나를 도울 수 있습니까?

해결법

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

    1.이것은 Zookeeper (ZK) 오류입니다. HBase 클라이언트는 사육사로부터 / hbase 노드를 가져 오려고 시도하고 실패합니다.

    이것은 Zookeeper (ZK) 오류입니다. HBase 클라이언트는 사육사로부터 / hbase 노드를 가져 오려고 시도하고 실패합니다.

    HBase 마스터 웹 인터페이스에서 ZK 덤프를 얻을 수 있습니다. ZK에 대한 모든 연결을 확인하고 무엇인가가 소모되면 알아 내야합니다.

    다른 것으로 들어가기 전에 ZK 클러스터를 다시 시작하고 문제가 해결되는지 확인하십시오. (그것은 하나의 클라이언트로 당신이 보는 것을 이상합니다.)

    HBase에는 ZK 연결 수를 늘릴 수있는 설정이 있습니다. 그

    hbase.zookeeper.property.maxClientCnxns
    

    최근 몇 가지 업데이트 (아래 참조)가 기본 연결 수와 관련되어 있습니다 (기본 구성이 모두있는 hbase-default.xml 파일이 있음). hbase-site.xml 파일 (HBase conf 디렉토리 아래)에서 이것을 덮어 쓰고 100 이상으로 올릴 수 있습니다. 그러나 당신이 진짜 문제를이 방법으로 감추고 있지 않다는 것을 확인하십시오, 당신은 단일 클라이언트로이 문제를 보지 말아야합니다.

    비슷한 상황 이었지만 HBase-0.90으로 업그레이드 한 후 map-reduce 작업을 통해 과중한 작업을 수행하는 중에 발생했습니다.

    다음은 문제와 관련된 몇 가지 문제입니다.

    그래도 문제가 해결되지 않으면 hbase-users 목록에 전자 메일을 보내거나 freenode의 #hbase 채널에 참여하여 실시간 질문을하십시오.

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

    2.문제는 실제로 (어떤 이유에서든 ... 자세히 알지 못합니다) 방화벽이 사육사와 통화하는 데 필요한 포트 중 하나를 차단하고있었습니다. 커맨드 라인에서 작동, 내 애플 리케이션에서하지 않았다. 그러나 방화벽을 비활성화했을 때 갑자기 모든 것이 잘되었습니다.

    문제는 실제로 (어떤 이유에서든 ... 자세히 알지 못합니다) 방화벽이 사육사와 통화하는 데 필요한 포트 중 하나를 차단하고있었습니다. 커맨드 라인에서 작동, 내 애플 리케이션에서하지 않았다. 그러나 방화벽을 비활성화했을 때 갑자기 모든 것이 잘되었습니다.

    도와 줘서 고마워!

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

    3.이 문제는 클라이언트 측 소스 인 hbase-site.xml에서 "zookeeper.znode.parent"에 대해 정의 된 값이 잘못되거나 사용자 정의 API의 경우 "zookeeper.znode.parent"가 잘못된 위치. 예를 들어 기본 "zookeeper.znode.parent"는 "/ hbase-unsecure"로 설정되어 있지만 클러스터에서 설정 한 내용과 반대로 "/ hbase"라고 잘못 지정하면이 문제가 발생합니다 HBase 클러스터에 연결하는 동안 예외가 발생했습니다.

    이 문제는 클라이언트 측 소스 인 hbase-site.xml에서 "zookeeper.znode.parent"에 대해 정의 된 값이 잘못되거나 사용자 정의 API의 경우 "zookeeper.znode.parent"가 잘못된 위치. 예를 들어 기본 "zookeeper.znode.parent"는 "/ hbase-unsecure"로 설정되어 있지만 클러스터에서 설정 한 내용과 반대로 "/ hbase"라고 잘못 지정하면이 문제가 발생합니다 HBase 클러스터에 연결하는 동안 예외가 발생했습니다.

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

    4.나는 내 hbase db에 연결하는 것과 같은 문제가 있었다.

    나는 내 hbase db에 연결하는 것과 같은 문제가 있었다.

    내가 / etc / hosts에 db 머신의 잘못된 주소를 가지고 있다는 것을 알았습니다.

  5. from https://stackoverflow.com/questions/6153560/hbase-client-connectionloss-for-hbase-error by cc-by-sa and MIT license