sqoop数据加载

      在大数据平台搭建完成之后,面对的第一个问题是怎么将DB数据库的业务数据加载到hdfs/hive/hbase进行处理。sqoop提供了这种功能。下面我们介绍一些sqoop

     sqoop基本概念:

            sqoop是实现hadoop平台和关系型数据库的数据转移的工具。

     sqoop原理:

            sqoop底层使用了MR模型。sqoop根据不同的split-by参数值切分数据,然后将切分后的region分配到不同的map中。

     sqoop具体操作: 


验证数据库连接

Sqoop  list-databases 

-connect 'jdbc:sqlserver://10.70.78.57:1433;Database=MobilePlatformDB;username=mdmUser;password=zaq1xsw@'


验证sql查询

sqoop eval 

--connect 'jdbc:sqlserver://10.70.78.57:1433;username=mdmUser;password=zaq1xsw@;database=MobilePlatformDB'  --query 'select count(1) from tbUserDevice;'


导入数据到hdfs

sqoop import 

--connect 'jdbc:sqlserver://10.70.78.57:1433;username=mdmUser;password=zaq1xsw@;database=MobilePlatformDB' --table tbUserDevice  --ta--fields-terminated-by '\t'


导入到hive

sqoop import 

--connect 'jdbc:sqlserver://10.70.78.57:1433;username=mdmUser;password=zaq1xsw@;database=MobilePlatformDB' 

--table tbUserDevice  

--hive-import 

--hive-database yjdd

--create-hive-table

--hive-table  tbUserDevice


增量导入到hive

sqoop支持两种增量导入到hive的模式,一种是 append,即通过指定一个递增的列,

比如:
--incremental append --check-column id --last-value 0 


sqoop import 

--connect 'jdbc:sqlserver://10.70.78.57:1433;username=mdmUser;password=zaq1xsw@;database=MobilePlatformDB' 

--table tbUserDevice  

--hive-import 

–incremental append   

--check-column id 

–last-value  0




另种是可以根据时间戳,

比如:
--incremental lastmodified --check-column time --last-value '2013-01-01 11:0:00'
就是只导入time'2013-01-01 11:0:00'更大的数据。



sqoop import 

--connect 'jdbc:sqlserver://10.70.78.57:1433;username=mdmUser;password=zaq1xsw@;database=MobilePlatformDB' 

--table tbUserDevice  

--hive-import 

–incremental lastmodified

--check-column updatetime

–last-value  xx


Sqoop 实现job增量导入:


sqoop  job 

--create usersevice_JOB 

-- import 

--connect 'jdbc:sqlserver://10.70.78.57:1433;username=mdmUser;password=zaq1xsw@;database=MobilePlatformDB' 

--table tbUserDevice  

--hive-import 

--hive-database yjdd 

--incremental append 

--check-column id --last-value 0



执行job

sqoop job --exec usersevice_JOB 


定时任务实现


Crontab e

*/5   *   *   *   *  sqoop job --exec usersevice_JOB 


     


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值