sqoop导入数据

作者: 明明德撩码 | 来源:发表于2018-03-20 00:15 被阅读15次

导入数据HDFS

准备测试数据


默认情况下导入数据至HDFS

bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \

指定目录和Mapper个数

bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--num-mappers 1  \
--target-dir /user/beifeng/sqoop/input  \
--delete-target-dir  \
  • 导出的结果


定义字段用制表符隔开

bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--num-mappers 1  \
--target-dir /user/beifeng/sqoop/input  \
--delete-target-dir  \
--fields-terminated-by '\t'
  • 结果


增量导入

bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--num-mappers 1  \
--target-dir /user/beifeng/sqoop/input  \
--fields-terminated-by '\t' \
--incremental append   \
--check-column id \
--last-value 4
sqoop支持两种增量导入模式,
  • 一种是 append,即通过指定一个递增的列,比如:
    --incremental append --check-column num_iid --last-value 0
    varchar类型的check字段也可以通过这种方式增量导入(ID为varchar类型的递增数字):
    --incremental append --check-column ID --last-value 8
  • 另种是可以根据时间戳,比如:
    --incremental lastmodified --check-column created --last-value '2012-02-01 11:0:00'
  • 执行结果


指定文件格式

指定压缩格式导入

作业

  • query

说明:--query 'select * from my_user where $CONDITIONS and id=2'
关键字$CONDITIONS后面必须跟and

bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
--username root \
--password 123456 \
--query 'select * from my_user where $CONDITIONS and id=2' \
--num-mappers 1  \
--target-dir /user/beifeng/sqoop/input  \
--delete-target-dir  \
--fields-terminated-by '\t'
结果
  • column
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--columns id,account \
--num-mappers 1  \
--target-dir /user/beifeng/sqoop/input  \
--delete-target-dir  \
--fields-terminated-by '\t'
执行结果
  • where
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--where 'id>3' \
--num-mappers 1  \
--target-dir /user/beifeng/sqoop/input  \
--delete-target-dir  \
--fields-terminated-by '\t'
执行结果

相关文章

网友评论

    本文标题:sqoop导入数据

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