美文网首页
Sqoop常用导出命令组合

Sqoop常用导出命令组合

作者: guaren2009 | 来源:发表于2020-07-02 15:42 被阅读0次

    一、创建测试表

    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

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

    相关文章

      网友评论

          本文标题:Sqoop常用导出命令组合

          本文链接:https://www.haomeiwen.com/subject/lajrqktx.html