2014-06-04 5 views
1

hadoop/hbase/hive/설정 및 실행 (hdfs에 파일을 만들거나 맵 축소 작업을 실행하고 hbase 및 하이브에서도 "테이블"을 만들 수 있음) my 10.9와 맥. 나는 지금 mysql 테이블에서 sqoop으로 데이터를 가져 오려고한다. (테이블 이름이 아닌 쿼리를 사용한다.) 이 명령으로이 오류가 발생합니다.sqoop을 사용하여 hbase에 mysql 쿼리 가져 오기

--COMMAND 
sqoop import --connect jdbc:mysql:///joshLocal --username root --query "SELECT * FROM  BITLOG WHERE \$CONDITIONS" --split-by oozie_job.id --hbase-table bitlogTest --hbase-create- table --column-family bitLogColumn 

--ERROR 
ERROR tool.ImportTool: Error during import: HBase jars are not present in classpath, cannot import to HBase! 

나는 모든 내보내기 표시 줄이 올바르게 설정되어 있다고 생각합니다. 나는 내가 한 그 다른 메시지가 swoop-env.sh에/libexec 디렉토리/lib 디렉토리를 HBASE_HOME 가리 키도록 집 HBase를 변경하는 것이었다 준 swoop-env.sh

export HADOOP_HOME="/usr/local/Cellar/hadoop/2.4.0" 
export HBASE_HOME="/usr/local/Cellar/hbase/0.98.1" 
export HIVE_HOME="/usr/local/Cellar/hive/0.13.0" 
export ZOOCFGDIR="/usr/local/etc/zookeeper" 
export HCAT_HOME="/usr/local/Cellar/hive/0.13.0/libexec/hcatalog" 

한 가지에 다음 있습니다. 그게 내게 준

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/Tool 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 

오류가 발생했습니다. hadoop 보안 jar 파일을 hbase의 설치에 복사해야한다고 말하는 조언을 보았습니다. 필자는 어떤 파일을 처리해야하는지, 심지어 문제인지 여부를 정확히 알지 못합니다. 내가 생각한 유일한 이유는 java.security.SecureClassLoader가 스택 트레이스에 있기 때문입니다.

정말 기본적인 자바 질문이라면 유감이지만 필자는 그것에 대한 완전한 초보자입니다.

또 하나의 기본적인 자바 질문. HADOOP_HOME HBASE_HOME 등을 정의 할 때, 우리는 그 정보에 의존하는 다른 자바 프로그램을 "말하고있다". 우리는 "여기에 실행 가능한 자바 파일이있다"고 말했거나 "lib 폴더에 jar 파일이 있습니다"라고 말하고 있습니까? 나는 그 경로가 어떻게 사용되는지 알지 못하기 때문에 실제로 무엇을 가리켜 야하는지 이해하지 못합니다.

UPDATE-1 : mysql ([email protected])에서 생성 한 새 사용자로 sqoop 가져 오기에서 연결 문자열을 변경해 보았습니다. sqoop에 대한 새로운 호출은

sqoop import --connect jdbc:mysql://wolfs-MacBook-Pro.local:3306/joshLocal --username sqoop --password sqoop --query "SELECT * FROM BITLOG WHERE \$CONDITIONS" --split-by oozie_job.id --hbase-table bitlogTest --hbase-create-table --column-family bitLogColumn 

이전과 같은 오류입니다. HBase 병은 없습니다. 또한, 문제의 일부가 될 수도있는 내 sqoop 요청과 일치하는 '열'을 포함하는 기본 '테이블'을 만들었습니다.

UPDATE-2 :

export HADOOP_HOME="/usr/local/Cellar/hadoop/2.4.0" 
export HBASE_HOME="/usr/local/Cellar/hbase/0.98.1/libexec" 
export HIVE_HOME="/usr/local/Cellar/hive/0.13.0/libexec" 
export ZOOCFGDIR="/usr/local/etc/zookeeper" 
export HCAT_HOME="/usr/local/Cellar/hive/0.13.0/libexec/hcatalog" 

에 swoop-env.sh 설정에서 내 수출 경로를 업데이트 지금은

Exception in thread "main" java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.hdfs.DistributedFileSystem could not be instantiated: java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.addDeprecations([Lorg/apache/hadoop/conf/Configuration$De precationDelta;)V 
at java.util.ServiceLoader.fail(ServiceLoader.java:207) 
at java.util.ServiceLoader.access$100(ServiceLoader.java:164) 
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:360) 
at java.util.ServiceLoader$1.n 

가 UPDATE 3 업데이트이 오류를 받고 있어요 내보내기에 대한 경로는 sqoop env 파일에서

export HADOOP_HOME="/usr/local/Cellar/hadoop/2.4.0/libexec" 

닫기 받기! 가져 오기 작업이 hbase 테이블을 만들었지 만 거기에 정보가 없습니다. 나는 지금이 오류가있다.

jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId= 
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected 
at org.apache.sqoop.mapreduce.DelegatingOutputFormat.checkOutputSpecs(DelegatingOutputFormat.java:63) 
at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:458) 
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:343) 

BTW - 내가 1.4.4

답변

0

당신은 당신이 사용하고 있는지 Sqoop을 버전을 만들 필요가 Sqoop을 실행하고있어 당신이 선택한 하둡 버전과 호환, 당신은 다른 다른 Sqoop을 실행/항아리를 얻을 수 Hbase + Hadoop 버전

관련 문제