sqoop的安装和使用

sqoop是什么?

sqoop是一个hadoop(HDFS,Hbase,hive)和结构数据库(关系型数据库)之间进行数据整合的工具.
sqoop的安装
1.解压并配置环境变量
2.配置配置文件 ./conf/sqoop-env.sh
mv sqoop-env-template.cmd sqoop-env.sh
vi sqoop-env.sh
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/usr/local/hadoop-2.7.1/
里面安装过的,你就把你目录放在上面,记得把前面的注释给去掉
3.将MySQL的驱动包cp到sqoop的安装目录下的lib目录下面
4.测试
sqoop version
sqoop的命令
import:将结构数据库中的数据导入到HDFS中.
export:将hadoop中的数据导出到关系型数据库中
sqoop的语句
--显示所有的数据库
sqoop list-databases --connect jdbc:mysql://hadoop01:3306 \
--username root --password mysql;

--显示一个数据库中的所有表
sqoop list-tables --connect jdbc:mysql://hadoop01:3306/test \
--username root --password mysql;

----import导入到HDFS:
sqoop import --connect jdbc:mysql://hadoop01:3306/test --driver com.mysql.jdbc.Driver \
--username root --password mysql \
--table DEPT \
--target-dir /hello/emp/tmp4

sqoop import --connect jdbc:mysql://hadoop01:3306/test --driver com.mysql.jdbc.Driver \
--username root --password mysql \
--table EMP -m 1 --fields-terminated-by '\t' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /hello/emp/tmp5

----import指定列导入
sqoop import --connect jdbc:mysql://hadoop01:3306/test --driver com.mysql.jdbc.Driver \
--username root --password mysql \
--table EMP -m 1 \
--columns 'EMPNO,ENAME,JOB,MGR' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /hello/emp/tmp6

----import导入到hive表
sqoop import --connect jdbc:mysql://hadoop01:3306/test --driver com.mysql.jdbc.Driver \
--username root --password mysql \
--table EMP -m 1 \
--columns 'EMPNO,ENAME,JOB,MGR' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--create-hive-table --hive-import --hive-overwrite \
--hive-table test.sq2 --delete-target-dir

----import指定where来导入
sqoop import --connect jdbc:mysql://hadoop01:3306/test --driver com.mysql.jdbc.Driver \
--username root --password mysql \
--table EMP -m 1 \
--columns 'EMPNO,ENAME,JOB,MGR' \
--where 'EMPNO > 7700' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /hello/emp/tmp7 --delete-target-dir;

----import指定Query来导入
sqoop import --connect jdbc:mysql://hadoop01:3306/test --driver com.mysql.jdbc.Driver \
--username root --password mysql -m 1 \
--query 'select EMPNO,ENAME,JOB,MGR from EMP where EMPNO > 7700 and $CONDITIONS' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /hello/emp/tmp8 --delete-target-dir;

注意:query和table不能一起使用不然会出错Cannot specify --Query and --table together


----import指定split-by来导入
sqoop import --connect jdbc:mysql://hadoop01:3306/test --driver com.mysql.jdbc.Driver
--username root --password mysql -m 2 \
--table EMP --split-by EMPNO \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /hello/emp/tmp9 --delete-target-dir;

----export导出到MySQL中
sqoop export --connect jdbc:mysql://hadoop01:3306/test --driver com.mysql.jdbc.Driver \
--username root --password mysql \
--table emp1 -m 1 \
--eport-dir '/hello/emp/tmp8' --update-mode updateonly \
--update-key id \
--input-fields-terminated-by '\t' --input-lines-terminated-by '\n' \
--input-null-string '\\N' --input-null-non-string '\\N' ;
注意:这里的表emp1是存在



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值