Sqoop笔记 -- 导入导出
测试Sqoop 是否可以连接数据库
sqoop list-databases \
--connect jdbc:mysql://hadoop2:3306/ \
--username root \
--password 123456
MySQL导入到HDFS上
全部导入
sqoop import \
--connect jdbc:mysql://hadoop2:3306/test \
--username root \
--password 123456 \
--table staff \
--target-dir /sqoop/ \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t"
delete-target-dir 删除存在的目录
查询导入
sqoop import \
--connect jdbc:mysql://hadoop2:3306/test \
--username root \
--password 123456 \
--target-dir /sqoop \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--query 'select name,sex from staff where id <=1 and $CONDITIONS;'
导入指定的列
sqoop import \
--connect jdbc:mysql://hadoop2:3306/test \
--username root \
--password 123456 \
--target-dir /sqoop \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--columns id,sex \
--table staff
使用sqoop关键字筛选查询导入数据
sqoop import \
--connect jdbc:mysql://hadoop2:3306/test \
--username root \
--password 123456 \
--target-dir /sqoop/a \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--table staff \
--where "id=1"
RDBMS到Hive
如果Hive中没有对应的表,则自动创建
sqoop import \
--connect jdbc:mysql://hadoop2:3306/test \
--username root \
--password 123456 \
--table staff \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table staff_hive
RDBMS到HBase
需要手动创建HBase表,hbase> create 'hbase_company','info'
sqoop import \
--connect jdbc:mysql://hadoop2:3306/test \
--username root \
--password 123456 \
--table staff \
--columns "id,name,sex" \
--hbase-create-table \
--hbase-table "hbase_company" \
--column-family "info" \
--hbase-row-key "id" \
--num-mappers 1 \
--split-by id
HIVE/HDFS到RDBMS
MySQL中如果表不存在,不会自动创建
sqoop export \
--connect jdbc:mysql://hadoop2:3306/test \
--username root \
--password 123456 \
--table staff_copy1 \
--num-mappers 1 \
--export-dir /user/hive/warehouse/staff_hive \
--input-fields-terminated-by "\t"
执行脚本
使用opt格式的文件打包sqoop命令,然后执行
创建一个.opt文件
mkdir opt
touch opt/job_HDFS2RDBMS.opt
编写Sqoop脚本
export
--connect
jdbc:mysql://hadoop2:3306/test
--username
root
--password
123456
--table
staff_copy2
--num-mappers
1
--export-dir
/user/hive/warehouse/staff_hive
--input-fields-terminated-by
"\t"
执行脚本
bin/sqoop --options-file opt/job_HDFS2RDBMS.opt
心如止水,虚怀如谷