[HADOOP] HBase completebulkload가 예외를 반환 함
HADOOPHBase completebulkload가 예외를 반환 함
Hadoop 문서에 설명 된 대량로드 방법을 사용하여 텍스트 파일 (몇 GB)에서 HBase 테이블을 빠르게 대량 채우려 고합니다.
HBase 테이블로 푸시하려는 HFile을 만들었습니다.
이 명령을 사용할 때 :
hadoop jar /home/hxcaine/hadoop/lib/hbase.jar completebulkload /user/hxcaine/dbpopulate/output/cf1 my_hbase_table
작업이 시작된 후이 예외가 발생합니다.
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/util/concurrent/ThreadFactoryBuilder
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.doBulkLoad(LoadIncrementalHFiles.java:195)
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:696)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.main(LoadIncrementalHFiles.java:701)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
at org.apache.hadoop.hbase.mapreduce.Driver.main(Driver.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.ThreadFactoryBuilder
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 17 more
그러나 Guava jar가 내 클래스 경로에 있음을 알 수 있으며 jar 내부를 확인하면 ThreadFactoryBuilder.class를 볼 수 있습니다.
이 버전을 사용하고 있습니다.
클래스 경로에 구형 구아바 병이 있지만 그것이 어디에서 왔는지 모르겠습니다. 효과가 있어야한다고 생각하지 않습니다.
어떤 아이디어?
해결법
-
==============================
1.당신이 실행하면 어떻게됩니까 :
당신이 실행하면 어떻게됩니까 :
export HADOOP_CLASSPATH=`hbase classpath`
로드를 실행하기 전에? 스택 추적에서 실제 작업 중 하나에 항아리가 필요한 것 같습니다. 실제로 M / R 작업을 시작한다는 사실에 놀랐습니다.
from https://stackoverflow.com/questions/11692497/hbase-completebulkload-returns-exception by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Storm UI 토폴로지가 작동하지 않습니다 (0) | 2019.09.16 |
---|---|
[HADOOP] hadoop 클러스터에서 Mapreduce 실행 (0) | 2019.09.16 |
[HADOOP] pydoop없이 HDFS Python의 모든 파일 나열 (0) | 2019.09.16 |
[HADOOP] StreamExecutionEnvironment를 사용하여 S3 싱크를 사용하여 S3에 쓸 수 없음-Apache Flink 1.1.4 (0) | 2019.09.16 |
[HADOOP] HRegionServer는“마스터에게 가동 중임을 알리는 오류”를 표시합니다. 소켓 예외 표시 : 잘못된 인수 (0) | 2019.09.16 |