2017-04-20 2 views
1

sqoop 내보내기를 사용하여 하이브 테이블에서 Sybase 테이블로 모든 레코드를 내보내려고합니다. HDFS 디렉토리에서 Sybase로 내보내고 싶지 않습니다. Sybase 드라이버 jar는 sqoop 디렉토리 안에 있습니다.하이브 테이블에서 Sybase로 내보낼 수 없습니다.

Sqoop을 명령 :

sqoop export \ 
--connect jdbc:sybase:Tds:dbipaddress:0000/DATABASE=omega \ 
--username dummy \ 
--password dummy\ 
--driver com.sybase.jdbc4.jdbc.SybDriver \ 
--table omega_events_sybase \ 
--hcatalog-table demo.omega_events_hive 

내가

17/04/20 16:44:05 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.5.1 
17/04/20 16:44:05 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 
17/04/20 16:44:05 WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time. 
17/04/20 16:44:05 INFO manager.SqlManager: Using default fetchSize of 1000 
17/04/20 16:44:05 INFO tool.CodeGenTool: Beginning code generation 
17/04/20 16:44:06 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM omega_events AS t WHERE 1=0 
17/04/20 16:44:06 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM omega_events AS t WHERE 1=0 
Note: Recompile with -Xlint:deprecation for details. 
17/04/20 16:44:08 INFO mapreduce.ExportJobBase: Beginning export of omega_events 
17/04/20 16:44:09 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar 
17/04/20 16:44:09 INFO mapreduce.ExportJobBase: Configuring HCatalog for export job 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hive/hcatalog/mapreduce/HCatOutputFormat 
    at org.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java:420) 
    at org.apache.sqoop.manager.SqlManager.exportTable(SqlManager.java:912) 
    at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:81) 
    at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:100) 
    at org.apache.sqoop.Sqoop.run(Sqoop.java:143) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) 
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) 
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) 
    at org.apache.sqoop.Sqoop.main(Sqoop.java:236) 
Caused by: java.lang.ClassNotFoundException: org.apache.hive.hcatalog.mapreduce.HCatOutputFormat 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 

누군가가이 문제를 해결하는 나를 도울 수 아래의 오류를 얻을하는 동안?

답변

0

HCAT 개의 라이브러리가 누락되었습니다. 하이브가 이미 Sqoop 명령이 실행 된 노드에서 사용 가능한 경우.

그렇지
export HCAT_HOME=$HIVE_HOME/hcatalog 
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HCAT_HOME/share/hcatalog/* 

, here에서 hive-hcatalog-core-<version>.jar를 다운로드하고 $SQOOP_HOME/lib/에 추가, 이러한 환경 변수를 추가합니다.

관련 문제