sqoop碰到的問題
背景:從Oracle接入數據,一張表一千多萬,數據量13G左右。
-
報錯,表名找不到,將表名改成大寫的
-
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
因為sqoop缺少java-json.jar包,下載jar包,把java-json.jar添加到../sqoop/lib目錄就可以。
-
Import failed: java.io.IOException: Generating splits for a textual index column allowed only in case of "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" property passed asa parameter
需要指定
--split-by 主鍵
並指定 "-Dorg.apache.sqoop.splitter.allow_text_splitter=true"參數即可 -
Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly
把 hive目錄下的hive-common-***.jar包拷貝到/sqoop/lib下
cp ${HIVE_HOME}/lib/hive-common-3.0.0.jar ${SQOOP_HOME}/lib/
-
FAILED: SemanticException [Error 10101]: A non-native table cannot be used as target for LOAD
說明sqoop導入的目標表是一個外部表,把這個外部表刪掉,或者指定另外的表名即可。
-
還需要下載Oracle驅動包,放到/sqoop/lib下,下載地址
最后的sqoop的語句為:
sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" -- hive-import --connect jdbc:oracle:thin:@ip:1521:lisgg1 --username name --password passwd --table tablename --hive-database default --hive-table hivetablename -m 3 --split-by contno
以上碰到的問題解決辦法不唯一,列出的為個人覺得比較簡單的解決方式,上述網站可能需要翻牆