测试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 " "
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 " "
--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 " "
--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 " "
--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 " "
--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 " "
执行脚本
使用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
" "
执行脚本
bin/sqoop --options-file opt/job_HDFS2RDBMS.opt