初识sqoop ---notes_day1

这里直接从job的建立与运行来回忆

我们首先在mysql 里面建立一张表 为  tohdfs

create table tohdfs(
id int primary key not null,
name varchar(20) not null

)

========================================================

数据插入(简单粗暴)

insert into tohdfs value('1','jack');
insert into tohdfs value('2','leo');
insert into tohdfs value('3','peter');
insert into tohdfs value('4','tom');
insert into tohdfs value('5','linda');
insert into tohdfs value('6','marry');
insert into tohdfs value('7','jerry');
insert into tohdfs value('8','zhangsan');

insert into tohdfs value('9','lisi');

========================================================

然后先导入基础数据到hdfs上,后面用job的方式对数据进行增量添加

bin/sqoop import \
--connect jdbc:mysql://make.hadoop.com:3306/test \      ==》连接的数据库,以及使用表所在的库
--username root \                     ==》用户名
--password 123456 \                 ==》密码
--direct \                                    ==》快速模式   这个参数不能放在最后,容易出问题
--target-dir /user/sqoop/table \                 ==》指定导入的一个文件位置
--table tohdfs \                                              ==》指定要的导入的表
-m 1 \                                                             ==》指定map的数量

--fields-terminated-by "\t" \                          ==》指定导入的分隔符


导入之后我们可以查看结果

初识sqoop ---notes_day1

接下来 我们设置我们的job进行增量导入

bin/sqoop job \
--create job01 \
-- \                            ==》这里一定要有个空格,反正这个版本必须有
import \
--connect jdbc:mysql://make.hadoop.com:3306/test \
--username root \
--password 123456 \
--direct \
--target-dir /user/sqoop/table2 \
--table tohdfs \
-m 1 \
--fields-terminated-by "\t" \
--check-column id \        ==》指定要检查的列
--incremental append \

--last-value 9                   ==》指定id列的最大值为9,则从9往后进行增量数据的添加

创建成功后,我们的job,不会立即运行,我们可以手动执行,或者设置crontab任务来定时执行,顺便记记job的几个方法

--list    显示出我们的job列表

--delete job_name    删除我么所给出的job

--show  job_name     显示我们的job的详细信息

--create job_name     创建一个新的job

--exec   job_name     立即执行job

执行之前更新我么的源表,添加到14   

我们这里就立即执行我们的job01

insert into tohdfs values(10,'one');
insert into tohdfs values(11,'two');
insert into tohdfs values(12,'three');
insert into tohdfs values(13,'four');
insert into tohdfs values(14,'five');

bin/sqoop job --exec job01   可以看到我们下图所示的id对应的值的范围 9-14,以及对应所导入的的最后的结果

初识sqoop ---notes_day1

insert into tohdfs values(16,'six');
insert into tohdfs values(17,'seven');
insert into tohdfs values(18,'eight');
insert into tohdfs values(19,'nine');
insert into tohdfs values(20,'ten');

我们再一次执行job01,可以看到上下界,可以知道我们可以从执行的日志中看出,--last-value的值会自动更新为上一次的上界的值,注意看一下上次的上界即可,就可以得到往后的增量数据。

初识sqoop ---notes_day1

结果如图

初识sqoop ---notes_day1

job的创建就到此结束。