您好,登錄后才能下訂單哦!
小編給大家分享一下Sqoop抽數(shù)到Hive表異常怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1.問(wèn)題描述
使用Sqoop抽取MySQL數(shù)據(jù)到Hive表時(shí),抽取語(yǔ)句正常執(zhí)行但數(shù)據(jù)沒(méi)有寫入Hive的表中,執(zhí)行的Sqoop抽數(shù)腳本如下:
export HADOOP_USER_NAME=hive
sqoop import \
--connect "jdbc:mysql://cdh02.fayson.com:3306/cm" \
--username cm \
--password password \
--table HOSTS \
--fields-terminated-by ',' \
--target-dir /user/hive/warehouse/hive_hosts \
--delete-target-dir \
--hive-import \
--hive-overwrite \
--hive-table hive_hosts \
--m 1 \
--input-null-string '\\N' \
--input-null-non-string '\\N'
(可左右滑動(dòng))
在命令行執(zhí)行上述Sqoop腳本,顯示作業(yè)正常執(zhí)行
執(zhí)行結(jié)果顯示文件數(shù)和數(shù)據(jù)大小均為0,登錄Hive查詢生成的hive_hosts表
2.異常處理及分析
1.在Sqoop抽數(shù)的腳本中存在target-dir參數(shù),指向的HDFS數(shù)據(jù)目錄,為hive_hosts表的倉(cāng)庫(kù)目錄,將target-dir參數(shù)去掉執(zhí)行
腳本執(zhí)行成功
如上腳本的日志可以看到,向HDFS寫入一個(gè)數(shù)據(jù)文件,文件大小481Byte。
2.使用hive命令查看hive_hosts表,數(shù)據(jù)已正常的抽取到hive_hosts表中
target-dir參數(shù)說(shuō)明及影響:
在Sqoop抽數(shù)腳本中,指定了target-dir目錄Sqoop抽取的數(shù)據(jù)會(huì)寫到target-dir指定的目錄,在Sqoop完成數(shù)據(jù)抽取后會(huì)將target-dir目錄的數(shù)據(jù)load到Hive表對(duì)應(yīng)的倉(cāng)庫(kù)目錄并刪除target-dir目錄及數(shù)據(jù)。因?yàn)樵谏鲜霎惓V形覀冎付ǖ膖arget-dir目錄與Hive表的倉(cāng)庫(kù)目錄一致,所以會(huì)導(dǎo)致Sqoop抽數(shù)成功,但對(duì)應(yīng)的Hive表中無(wú)數(shù)據(jù)問(wèn)題。
Sqoop腳本中如果不指定target-dir目錄時(shí),默認(rèn)會(huì)將抽取的數(shù)據(jù)寫入到/user/{username}/{db_tablename}目錄下。
以上是“Sqoop抽數(shù)到Hive表異常怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。