service mysql start
# mysql -uroot -proot
mysql> create table dept(id int primary key ,dname varchar(20),sex varchar(5));
mysql> insert into dept values(1,'tom','male');
mysql> insert into dept values(2,'jack','f');
bin/sqoop import \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root \
--table dept \
--target-dir /user/dept \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
bin/sqoop import \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root \
--target-dir /user/dept \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--query 'select dname from emp where id <=1 and $CONDITIONS;'
注:这里的CONDITIONS不能省去,他的作用相当于MapReduce流程中的切片(分片)过程。
bin/sqoop import \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root --target-dir /user/dept \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--columns dname,sex \
--table emp
bin/sqoop import \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root \
--target-dir /user/emp2 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--table dept \
--where "id=1"
bin/sqoop import \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root \
--table dept \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table dept_hive
注:执行这个操作之前需要把将hive/lib中的hive-common-2.3.3.jar拷贝到sqoop的lib目录中
bin/sqoop import \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root \
--table emp \
--num-mappers 1 \
--fields-terminated-by '\t' \
--target-dir /user/hive/warehouse/taff_hive1 \
--check-column eid \
--incremental append \
--last-value 3
注:append不能与–hive-的参数同时使用,并且RDBMS导入到HIVE的过程是:
先把RDBMS数据导入到HDFS本地目录下,然后再转移到HIVE中。
bin/sqoop import \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root \
--table staff_timestamp \
--fields-terminated-by '\t' \
--check-column last_modified \
--incremental lastmodified \
--last-value "2018-11-8 21:46:30" \
--num-mappers 1 \
--append
bin/sqoop export \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root \
--table dept \
--num-mappers 1 \
--export-dir /user/hive/warehouse/t1/part-m-00001 \
--input-fields-terminated-by '\t'
注:一定要清楚以什么为分割导出,不然会导致导出失败
bin/sqoop export \
--connect jdbc:mysql://Mage1:3306/bigdata11 \
--username root \
--password root \
--table dept \
--hive-table hive_dept
结束语:以上的sqoop在对RDBMS到HIVE/HDFS的一些常用的数据导入导出,另外sqoop还有许多命令&参数,有兴趣的小伙伴可以多多了解。