Sqoop增量数据导入

本文介绍了在Linux环境下,使用Sqoop进行增量数据导入的方法,包括Append模式和Lastmodified模式。详细阐述了split-by参数的作用,以及如何设置增量导入的条件。并通过实际操作,演示了从Mysql数据库到HDFS的增量数据迁移过程。
摘要由CSDN通过智能技术生成

系统环境

Linux Ubuntu 16.04

jdk-7u75-linux-x64

hadoop-2.6.0-cdh5.4.5

sqoop-1.4.5-cdh5.4.5

mysql-5.7.24

相关知识

Sqoop在import时,需要制定split-by参数。Sqoop根据不同的split-by参数值来进行切分,然后将切分出来的区域分配到不同Map中。每个Map中再处理数据库中获取的一行一行的值,写入到HDFS中。同时split-by根据不同的参数类型有不同的切分方法,如比较简单的int型,Sqoop会取最大和最小split-by字段值,然后根据传入的Map数(num-mappers)来确定划分几个区域。 比如select max(split_by),min(split-by) from得到的max(split-by)和min(split-by)分别为1000和1,而Map数(num-mappers)为2的话,则会分成两个区域(1,500)和(501-1000),同时也会分成2个SQL给2个Map去进行导入操作,分别为select XXX from table where split-by>=1 and split-by<500和select xxx="" from="" table="" where="" split-by="">=501 and split-by<=1000。最后每个Map各自获取各自SQL中的数据进行导入工作。
Sqoop增量数据导入有两种方式分别为:Append模式(字段增长)和Lastmodified模式(时间增长)。

(1)Append模式是通过指定一个递增的列作为标准,比如:

–incremental append --check-column buyer_id --last-value 10005

Sqoop会抽取buyer_id大于10005的数据。

(2)Lastmodified模式是根据时间作为标准,比如:

–incremental lastmodified --check-column reg_date --last-value ‘2008-10-21 15:31:33’

Sqoop会抽取在’2008-10-21 15:31:33’以后产生的数据。

任务内容

1.使用Sqoop按字段增长将Mysql中数据抽取到HDFS

2.使用Sqoop按时间增长将Mysql中数据抽取到HDFS

任务步骤

1.首先检查Hadoop相关进程,是否已经启动。若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。

jps  
cd /apps/hadoop/sbin  
./start-all.sh  

2.在Linux本地新建/data/sqoop3目录。

mkdir -p /data/sqoop3  

切换到/data/sqoop3目录下,使用wget命令,下载http://192.168.1.100:60000/allfiles/sqoop3中的文件。

cd /data/sqoop3
wget http://192.168.1.100:60000/allfiles/sqoop3/dtbefore.txt

3.另开一个窗口,开启mysql服务。(密码:zhangyu)

sudo service mysql start  

登录Mysql,密码strongs。

mysql -u root -p  

在这里插入图片描述
4.在Mysql库中,创建sqoop数据库并使用sqoop库。

create database sqoop;  
use sqoop;  

在这里插入图片描述
然后在sqoop库中为某电商创建一张买家信息表,名为buyer,包含buyer_id 、reg_date、reg_ip、buyer_status四个字段,buyer_id 为主键,字符类型均为varchar(100)。

create table bu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值