Sqoop简介

sqoop是什么?

sqoop是个传输数据的工具。
本质:就是讲sqoop语句转换成mapreduce。

官网地址
Apache Sqoop(TM)是一种工具,用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据 。
http://sqoop.apache.org/

特点
优点:他可将将跨平台的数据进行整合。
缺点:不是很灵活
mysql <–> hdfs
mysql --> hive
mysql --> hbase

sqoop导入导出的关键字
import : 从关系型数据库导入到hadoop
export : 从hadoop导出到关系型数据库

举例

sqoop import --connect jdbc:mysql://mini1:3306/mysql \
--username hivetest -P \
--table user \
--target-dir hdfs://mini1:9000/sqoop/emp \
-m 1 

导入的方式分为增量导入(每天按照自己的需求导入数据)和全量导入(一次性全部导入)。数据量每天都有更新和增加的时候我们一般采用增量导入。

#job读入
sqoop job --create myimportjob

对于增量导入,job会记录last-value,下次再执行这个job的时候会从记录的last-value开始导入。
增量导入

增量导入(id>4的记录被导出)
sqoop import \
--connect jdbc:mysql://hadoop01:3306/test \
--username root \
--password 123456 \
--incremental append \
--query 'select id,name from employee where $CONDITIONS' \
--check-column id \
--last-value 4 \
--target-dir hdfs://hadoop01:8020/sqoopdata/emp1 \
-m 1

sqoop import:从关系型数据库导数到Hadoop 
–incremental append: 设置为增量模式 
--query ''
query 替代了-table 、 -columns 、 -where
query 必须指定--target-dir
query 必须包含$CONDITIONS
query 后面的SQL语句需要注意
如果语句使用双引号包裹使用 \$CONDITIONS (类似于:--query "select id,name from em where id>10 and \$CONDITIONS")
如果语句使用单引号包裹使用$CONDITIONS
query 不能和-table搭配使用 ,加上 -columns 、 -where 无效
query 如果where有条件 则后面需要and  (类似于:--query 'select id,name from em where id>10 and $CONDITIONS')
–check-column: 用于检查增量数据的列 
–last-value :源数据中所有大于–last value的值都会被导入Hadoop
-m 1:指定map task的数量为1

其他更多导入导出方式可以查看官网的用户文档:
http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值