jps 명령어를 이용해서 HMaster 데몬이 뜨는 것까지 확인하고,

bin/hbase shell 을 이용해서 간단한 row,cf를 생성할 때 org.apache.hadoop.hbase.MasterNotRunningException 이 발생했다. 



hbase(main):001:0> create 'test', 'test'


ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times




이럴 때는 이미 예전부터 hbase 문제였으므로 재시작 로그를 확인한다. 

로그는 다음과 같았다. 


13/04/23 17:08:10 INFO client.HConnectionManager$HConnectionImplementation: ZooKeeper available but no active master location found

13/04/23 17:08:10 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 0 of 1 failed; no more retrying.

org.apache.hadoop.hbase.MasterNotRunningException

        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:706)

        at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:126)

        at org.apache.hadoop.hbase.master.HMasterCommandLine.stopMaster(HMasterCommandLine.java:175)

        at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:106)

        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)

        at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76)

        at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1944)

13/04/23 17:08:10 INFO client.HConnectionManager$HConnectionImplementation: Closed zookeeper sessionid=0x13e2188f1ba006f





문제 해결 방법 가이드

1. hadoop을 다시 실행하고.웹 서버로 접근해서 체크

2. hadoop example을 하나 테스트해서 이상없는지 체크

3. hbase 실행후 HMaster 데몬이 떠있는지 확인. Hmaster 데몬이 안떠있으면 critical하게 설정이 잘못한 것임

4. Hmaster는 떠 있는데, bin/hbase shell이 안되는 경우는 connection문제

5. 설정중 통신관련된 부분을 체크


hadoop은 이상없었고, hbase 설정 이슈 같은데 잘 안잡혔다.

hbase-site.xml 상에서도 zookeeper 설정도 잘했다고 생각했고 jps 로 보니 QuorumPeerMain 자바 데몬은 떠 있었다. 



소스를 통해서 확인해보니 ZooKeeper Master 정보를 얻지 못해서 발견된 에러였다. 

http://javasourcecode.org/html/open-source/hbase/hbase-0.90.3/org/apache/hadoop/hbase/client/HConnectionManager.java.html



fully distributed모드일때는 Zookeeper 쿼럼을 다 적어야 하나보다.



살펴보니.

hbase-sitemhbase.ZooKeeper.quorum 설정에 하나만 해놨다.. ㅠ 

3대의 Zookeeper 데몬을 실행시켜놨는데, 이를 제대로 하지 않아서 에러가 발생했던 것이었다. 

실수한 부분

    <property>

        <name>hbase.ZooKeeper.quorum</name>

        <value>1.1.1.1</value>

    </property>


-> 

고친 부분

    <property>

        <name>hbase.ZooKeeper.quorum</name>

        <value>1.1.1.1,1.1.1.2,1.1.1.3</value>

    </property>


Zookeeper 서버 설정을 완료후, hbase 재시작을 하니.  MasterNotRunningException이 더이상 문제가 해결되었다.




Zookeeper에서 zkCli.sh를 실행시켜서 master 가 어디있는지 확인했다.  1.1.1.1이 master였다. 


[zk: localhost:2181(CONNECTED) 6] get /hbase/master

1.1.1.1,1,60000,1366704841540

cZxid = 0x10000019b

ctime = Tue Apr 23 17:14:02 KST 2013

mZxid = 0x10000019b

mtime = Tue Apr 23 17:14:02 KST 2013

pZxid = 0x10000019b

cversion = 0

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x13e2188f1ba0070

dataLength = 61

numChildren = 0








Posted by '김용환'
,