Sqoop常用导出命令组合

2020-07-02  本文已影响0人  guaren2009

一、创建测试表

create table sqoop_test_from_hdfs(

name varchar(20) comment '姓名',

age int comment '年龄',

sex char(1) comment '性别'

)ENGINE=INNODB comment 'sqoop的测试表从hdfs导出到mysql';

二、常用命令组合

注意点:

(1)如果hdfs上的文件的分隔符不是逗号,则要通过 --fields-terminated-by 指定分隔符,否则会报错,而且报错信息不明确提示是分隔符的问题,报错原因不好找

(2)中文乱码的问题,需要在jdbc url中添加?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8,添加了这串参数之后,整个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

因没有指定分隔符导致的报错 导出中文乱码的问题
上一篇下一篇

猜你喜欢

热点阅读