用sqoop從MySQL導(dǎo)出數(shù)據(jù)到hive錯誤匯總

環(huán)境:jdk1.8_291,hadoop2.7.6,hive2.3.7,sqoop1.4.7,mysql5.7.33

前言

Sqoop現(xiàn)狀

已經(jīng)停止維護(hù) 分為SQOOP 1 和SQOOP 2  建議使用sqoop 1.4.7
停止維護(hù)原因分析
1.足夠的成熟
2.基于MapReduce太老了,替換方案datax canel

其實(shí)用sqoop到數(shù)據(jù)到hive中的大部分錯誤都是因?yàn)閔ive的版本太高所致最好的sqoop運(yùn)行環(huán)境是Hadoop 2.7+ Hive 1.2.1 +HBase 1.x +sqoop 1.4.7

運(yùn)行前準(zhǔn)備
運(yùn)行以下幾個命令
cp $HIVE_HOME/lib/hive-common-2.3.7.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/libfb303-0.9.3.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/conf/hive-site.xml $SQOOP_HOME/conf/
將hive有關(guān)幾個jar包和配置放入sqoop下能避免很多錯誤

1. 錯誤main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")

解決
java 的安全策略問題:找到j(luò)re包, /Java/jre/lib/security 包下面的 java.policy 文件,編輯他,加上如下 代碼

permission javax.management.MBeanTrustPermission "register";

2. 錯誤ERROR exec.DDLTask: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.readerFor(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/ObjectReader;

解決
因版本不一致導(dǎo)致
SQOOP_HOME/lib/jackson*.jar 文件backup,再把HIVE_HOME/lib/jackson*.jar 拷貝至 $SQOOP_HOME/lib 目錄中。

mv $SQOOP_HOME/lib/jackson-annotations-2.3.1.jar $SQOOP_HOME/lib/jackson-annotations-2.3.1.jar.backup

mv $SQOOP_HOME/lib/jackson-core-2.3.1.jar $SQOOP_HOME/lib/jackson-core-2.3.1.jar.backup

mv $SQOOP_HOME/lib/jackson-core-asl-1.9.13.jar $SQOOP_HOME/lib/jackson-core-asl-1.9.13.jar.backup

mv $SQOOP_HOME/lib/jackson-databind-2.3.1.jar $SQOOP_HOME/lib/jackson-databind-2.3.1.jar.backup

mv $SQOOP_HOME/lib/jackson-mapper-asl-1.9.13.jar $SQOOP_HOME/lib/jackson-mapper-asl-1.9.13.jar.backup


cp $HIVE_HOME/lib/jackson-annotations-2.6.0.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-core-2.6.5.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-databind-2.6.5.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-dataformat-smile-2.4.6.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-datatype-guava-2.4.6.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-datatype-joda-2.4.6.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-jaxrs-1.9.13.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-jaxrs-base-2.4.6.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-jaxrs-json-provider-2.4.6.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-jaxrs-smile-provider-2.4.6.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-module-jaxb-annotations-2.4.6.jar $SQOOP_HOME/lib/
cp $HIVE_HOME/lib/jackson-xc-1.9.13.jar $SQOOP_HOME/lib/

3.錯誤ERROR tool.ImportTool: Import failed: java.io.IOException: Hive CliDriver exited with status=1

解決
libthrift jar 包不兼容的原因
找到hive中l(wèi)ib文件夾,將文件夾中的libthrift-0.9.2.jar 拷貝到sqoop路徑下的lib文件夾下面

cp $HIVE_HOME/lib/libthrift-0.9.3.jar $SQOOP_HOME/lib/
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容