2018-07-19 sqoop
sqoop:
数据从传统数据库到到hadoop的导入,导出
安装:
1.解压
2.修改配置文件
cdSQOOP_HOME/conf
$ mv sqoop-env-template.sh sqoop-env.sh
打开sqoop-env.sh并编辑下面几行:
export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.6.1/
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.6.1/
export HIVE_HOME=/home/hadoop/apps/hive-1.2.1
3.加入mysql驱动包
4.检验
bin/sqoop-version
正确打印版本安装成功 会有2个warming 但没有影响
常用操作
导入hdfs
bin/sqoop import \ --connect jdbc:mysql://ip:3306/数据库名 \ --username 用户名 \ --password 密码 \ --table 表名 --m 1 导入hive bin/sqoop import --connect jdbc:mysql://ip:3306/数据库名--username root --password root --table emp --hive-import --m 1 条件导入 --connect jdbc:mysql://hdp-node-01:3306/test \ --username root \ --password root \ --where "条件'" \ --target-dir /wherequery \ 导入hdfs的目标文件 --table emp_add --m 1 sql导入 sqoop import \ --connect jdbc:mysql://hdp-node-01:3306/test \ --username root \ --password root \ --target-dir /wherequery2 \ --query 'select id,name,deg from emp WHERE id>1207 andCONDITIONS'
--split-by id
--fields-terminated-by '\t'
--m 1
从hdfs导出
bin/sqoop export
--connect jdbc:mysql://hdp-node-01:3306/test
--username root
--password root
--table emp2
--export-dir /user/hadoop/emp/
sqoop作业
1创建
bin/sqoop job --create myimportjob -- import --connect jdbc:mysql://hdp-node-01:3306/test --username root --password root --table emp --m 1
2查看list
sqoop job --list
3查看job详情
sqoop job --show myjob
4执行某个job
sqoop job --exec myjob
导入定制
生产导入源码
sqoop-codegen \ --import --connect jdbc:mysql://localhost/userdb \ --username root \ --table emp 修改目标java文件 cd /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/