본문 바로가기

Cloud, Bigdata, AI/Big Data Analysis

[HBase] HBase의 HMaster가 작동 안될 때

반응형

하둡 기반 시스템에서 HBase를 구축하려고 하는데 이전에 설치했던 경험을 토대로 그대로 진행했는데 HMaster가 자꾸만 안올라간다.

로그를 찍어보니 다음과 같다.


(...중략)

2018-10-16 17:44:01,922 INFO  [main] ipc.NettyRpcServer: Bind to /127.0.1.1:16000

2018-10-16 17:44:01,958 INFO  [main] hfile.CacheConfig: Allocating onheap LruBlockCache size=1.54 GB, blockSize=64 KB

2018-10-16 17:44:01,962 INFO  [main] hfile.CacheConfig: Created cacheConfig: blockCache=LruBlockCache{blockCount=0, currentSize=1.15 MB, freeSize=1.54 GB, maxSize=1.54 GB, heapSize=1.15 MB, minSize=1.46 GB, minFactor=0.95, multiSize=747.36 MB, multiFactor=0.5, singleSize=373.68 MB, singleFactor=0.25}, cacheDataOnRead=true, cacheDataOnWrite=false, cacheIndexesOnWrite=false, cacheBloomsOnWrite=false, cacheEvictOnClose=false, cacheDataCompressed=false, prefetchOnOpen=false

2018-10-16 17:44:01,963 INFO  [main] hfile.CacheConfig: Created cacheConfig: blockCache=LruBlockCache{blockCount=0, currentSize=1.15 MB, freeSize=1.54 GB, maxSize=1.54 GB, heapSize=1.15 MB, minSize=1.46 GB, minFactor=0.95, multiSize=747.36 MB, multiFactor=0.5, singleSize=373.68 MB, singleFactor=0.25}, cacheDataOnRead=true, cacheDataOnWrite=false, cacheIndexesOnWrite=false, cacheBloomsOnWrite=false, cacheEvictOnClose=false, cacheDataCompressed=false, prefetchOnOpen=false

2018-10-16 17:44:02,076 ERROR [main] regionserver.HRegionServer: Failed construction RegionServer

java.lang.NoClassDefFoundError: org/apache/htrace/SamplerBuilder

        at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:635)

        at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:619)

        at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:149)

        at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669)

        at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)

        at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)

        at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)

        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)

        at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)

        at org.apache.hadoop.hbase.util.CommonFSUtils.getRootDir(CommonFSUtils.java:358)

        at org.apache.hadoop.hbase.util.CommonFSUtils.isValidWALRootDir(CommonFSUtils.java:407)

        at org.apache.hadoop.hbase.util.CommonFSUtils.getWALRootDir(CommonFSUtils.java:383)

(...후략)


구글링 해서 나온 hortonworks, cloudera 쪽 해결법은 다 시도해봤는데 안되었다.

뭐가 문제일까 고민하던 중 stackoverflow의 질문답변 중 댓글에 적힌 내용이 있었다. (link)

htrace-어쩌구.jar 의 버전이 안맞아서 그렇다는 것이다. 그래서 hbase의 라이브러리 디렉토리에서 해당 jar를 찾아서 교체해주는 시도를 해봤는데 여전히 해결이 안되었다.


근데 잘 읽어보니 hadoop lib를 갖다 쓰는 모양이었다. 그래서 hadoop lib에서 바꿔주니 해결이 되었다.



Solution.


원인


HBase가 시작될 때 $HADOOP_HOME/share/hadoop/common/lib 에서 htrace-core-3.1.0-incubating.jar를 찾지 못할 때 발생



해결


$HBASE_HOME/lib/client-faicing-thirdparty/ 아래에 있는 htrace-core-3.1.0-incubating.jar 를 $HADOOP_HOME/share/hadoop/common/lib에 복사



반응형