初识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" \ ==》指定导入的分隔符
导入之后我们可以查看结果
接下来 我们设置我们的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,以及对应所导入的的最后的结果
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的值会自动更新为上一次的上界的值,注意看一下上次的上界即可,就可以得到往后的增量数据。
结果如图
job的创建就到此结束。