HDP 가 정말로 좋지만, 요구 환경때문에, Apache Hbase를 사용하고 있습니다. (사실 몇몇 요구사항때문에 Hbase를 직접 컴파일하고 빌드한 상황이라, 바이너리를 받았으면 이런오류가 안생기실수도 있습니다)
참고로 제 환경은 Centos 6.6 64bit, Hbase 1.0.1.1 입니다.
방금전에 문제 겪은것에 대해 해결방법을 포스팅합니다
2015-08-05 13:49:25,287 INFO [root:16020.activeMasterManager] master.ServerManager: Waiting for region servers count to settle; currently checked in 0, slept for 9017 ms, expecting minimum of 1, maximum of 2147483647, timeout of 4500 ms, interval of 1500 ms
이 말은 무슨말이나면, 지금 클라이언트가 Hbase 에 Embemd된 zookeeper를 쓴다고해서 환경을 맞추려다가 생긴 문제인데, Zookeepr 올라가 Hmaster가 올라갔는데 리전서버들이 아직 연락이 없다 이말입니다. 한마디로 Hmaster만 대기 타고 있는 상황
그래서 리젼서버에서 무슨일이 있나 봤더니
714 2015-08-05 13:49:54,134 ERROR [main] regionserver.HRegionServerCommandLine: Region server exiting
715 java.lang.RuntimeException: Failed construction of Regionserver: class org.apache.hadoop.hbase.regionserver.HRegionServer
716 at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2497)
717 at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:64)
718 at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87)
719 at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
720 at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
721 at org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:2511)
722 Caused by: java.lang.reflect.InvocationTargetException
723 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
724 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
725 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
726 at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
727 at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2494)
728 ... 5 more
729 Caused by: java.net.BindException: Problem binding to root/XXXXX:16020 : Address already in use
730 at org.apache.hadoop.hbase.ipc.RpcServer.bind(RpcServer.java:2373)
731 at org.apache.hadoop.hbase.ipc.RpcServer$Listener.<init>(RpcServer.java:524)
732 at org.apache.hadoop.hbase.ipc.RpcServer.<init>(RpcServer.java:1899)
733 at org.apache.hadoop.hbase.regionserver.RSRpcServices.<init>(RSRpcServices.java:795)
734 at org.apache.hadoop.hbase.regionserver.HRegionServer.createRpcServices(HRegionServer.java:575)
735 at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:492)
736 ... 10 more
737 Caused by: java.net.BindException: Address already in use
738 at sun.nio.ch.Net.bind0(Native Method)
739 at sun.nio.ch.Net.bind(Net.java:437)
740 at sun.nio.ch.Net.bind(Net.java:429)
741 at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
742 at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
743 at org.apache.hadoop.hbase.ipc.RpcServer.bind(RpcServer.java:2369)
16020 포트가 사용되고 있다고 나오는것입니다. 사용되서 내가 이포트를 써야겠는데 못쓰겠다.
관련해서 오류를 찾아보니 포트가 중복되는 문제로 https://issues.apache.org/jira/browse/HBASE-10123
이런식으로 바꾼예제가 있는데, 제 기억에는 스택오버플로우에 있는게 기본포트였던것 같은데 아닌가 보더군요..
<property >
<name>hbase.master.port</name>
<value>60000</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<property>
<name>hbase.regionserver.port</name>
<value>60020</value>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>60030</value>
</property>
그래서 이런식으로 Hbase-site.xml에 집어넣고, Hbase를 작동시키니 정상작동하네요
'Study > Bigdata' 카테고리의 다른 글
아파치 피닉스(Apache Phoenix) 설치 (0) | 2015.10.20 |
---|---|
Hbase + Hive 연동 (0) | 2015.10.02 |
Aapche hive select count(*) 과 같은 작업을 할때 MapReduce 작업이 무한이 진행될때 (0) | 2015.08.05 |
Strom-kafka : ava.lang.RuntimeException:java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/topic_sdka/partitions (0) | 2015.06.03 |
Hbase Thrift Java Client Demo (0) | 2015.03.09 |
hive web interface(hwi) 설치하기 (0) | 2015.02.11 |