Sqoop常用導(dǎo)出命令組合

一、創(chuàng)建測試表

create table sqoop_test_from_hdfs(

name varchar(20) comment '姓名',

age int comment '年齡',

sex char(1) comment '性別'

)ENGINE=INNODB comment 'sqoop的測試表從hdfs導(dǎo)出到mysql';


二、常用命令組合

注意點:

(1)如果hdfs上的文件的分隔符不是逗號,則要通過 --fields-terminated-by 指定分隔符,否則會報錯,而且報錯信息不明確提示是分隔符的問題,報錯原因不好找

(2)中文亂碼的問題,需要在jdbc url中添加?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8,添加了這串參數(shù)之后,整個jdbc url需要使用引號(單引號或雙引號都可以)包起來,否則報錯

(2.1)指定分隔符的命令

sqoop export \

--connect 'jdbc:mysql://192.168.228.128:3306/ruozedata?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8' \

--username root \

--password root \

--mapreduce-job-name? hdfs2mysql \

--table sqoop_test_from_hdfs \

--columns "name,age,sex" \

--export-dir /user/hadoop/sqoop_test_column_split_where \

--fields-terminated-by '|' \

-m 2


----------------------------------------------------------------

(2.2)如果分隔符為逗號的,可以不指定分隔符

sqoop export \

--connect 'jdbc:mysql://192.168.228.128:3306/ruozedata?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8' \

--username root \

--password root \

--mapreduce-job-name? hdfs2mysql \

--table sqoop_test_from_hdfs \

--columns "name,age,sex" \

--export-dir /user/hadoop/sqoop_test_column \

-m 2


因沒有指定分隔符導(dǎo)致的報錯


導(dǎo)出中文亂碼的問題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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