sqoop导入数据
2018-03-20 本文已影响15人
明明德撩码
导入数据HDFS
![](https://img.haomeiwen.com/i4176128/dfc43b8bda61c94b.png)
![](https://img.haomeiwen.com/i4176128/c29fac176519f3d7.png)
准备测试数据
![](https://img.haomeiwen.com/i4176128/079b47a5598a36d1.png)
![](https://img.haomeiwen.com/i4176128/2eb96ab2f365cd32.png)
默认情况下导入数据至HDFS
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.beifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
![](https://img.haomeiwen.com/i4176128/55ce694de6e6b214.png)
![](https://img.haomeiwen.com/i4176128/3c6d30af278096ef.png)
指定目录和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 \
![](https://img.haomeiwen.com/i4176128/becee00487ef1aff.png)
-
导出的结果
定义字段用制表符隔开
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'
![](https://img.haomeiwen.com/i4176128/6d1a46ebdf2f67c9.png)
-
结果
增量导入
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'
![](https://img.haomeiwen.com/i4176128/0a6f8ac2b3867f5a.png)
-
执行结果
指定文件格式
![](https://img.haomeiwen.com/i4176128/42503d7f44c70c51.png)
指定压缩格式导入
![](https://img.haomeiwen.com/i4176128/b348a5d01cb4666d.png)
作业
![](https://img.haomeiwen.com/i4176128/f9c34647b9389793.png)
- 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'
![](https://img.haomeiwen.com/i4176128/179e28f37060b9c1.png)
- 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'
执行结果
![](https://img.haomeiwen.com/i4176128/e2e90458cb4ebba2.png)
- 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'
执行结果
![](https://img.haomeiwen.com/i4176128/c4e5a842fa06e49c.png)