sqoop碰到的问题
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
以上碰到的问题解决办法不唯一,列出的为个人觉得比较简单的解决方式,上述网站可能需要FQ