Sqoop之hive的job

Sqoop安装部署 :https://blog.csdn.net/weixin_45102492/article/details/104600343
sqoop的一些常用命令及参数 :https://blog.csdn.net/weixin_45102492/article/details/92438970
sqoop数据导入 :https://blog.csdn.net/weixin_45102492/article/details/90727928
Sqoop数据导出 :https://blog.csdn.net/weixin_45102492/article/details/104675105
Sqoop之hive的job :https://blog.csdn.net/weixin_45102492/article/details/104608162
Sqoop抽取数据常见错误 :https://blog.csdn.net/weixin_45102492/article/details/104608006

Sqoop提供一系列的job语句来操作Sqoop.
$ sqoop job(generic-args)(job-args)[-[subtool-name](subtool-args)]
$ sqoop-job(generic-args)(job-args)[-[subtool-name](subtool-args)]
使用方法:

参数 描述
–create 用创建保存作业。
–delete 删除已保存的作业。
–exec 获取一个用–create定义的作业,运行这个已经保存的作业。
–show 显示已保存作业的参数。
–list 列出所有已保存的作业

创建一个job

sqoop job --create myjob1 -- import \
--connect jdbc:mysql://localhost:3306/hyk \
--driver com.mysql.jdbc.Driver \
--username root \
--password 123456 \
--table dept \
--target-dir /hyk/data/test \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--split-by id

执行Sqoop的job

sqoop job --exec myjob1

执行的时候会让输入密码,输入该节点用户的对应的密码即可

可以通过下面的方式,避免输入密码:
方式一: 配置客户端记住密码(sqoop-site.xml)

<property>
<name>sqoop.metastore. client. record. password</name>
<value>true</value>
</property>

方式二: 将密码配置到hdfs的某个文件,我们指向该密码文件
说明:在创建Job时,使用–password-file参数,而且非–passoword。主要原因是在执行Job时使用–password参数将有警告,并且需要输入密码才能执行Job:当我们采用–password-file参数时,执行Job无需输入数据库密码:

echo -n "root" > sqoop.pwd
hdfs dfs -put sqoop.pwd /input
hdfs dfs -chmod 400 /input/sqoop. pwd
hdfs dfs -ls /input
-r-------- 1 hadoop supergroup 6 2020-02-29 18:38 /input/sqoop. pwd

查看Sqoop的job

sqoop job --show myjob1

删除Sqoop的job

sqoop job --delete myjob1

列出所有sqoop的job

sqoop job --list

job的好处:

1、一次创建,后面不需要创建,可重复执行job即可
2、它可以帮我们记录增量导入数据的最后记录值
3.、job的元数据存储日录: $HOME/.sqoop/

定期执行

方法:
1、直接调度框架调度Sqoop语句
2.将Sqoop语句封装到Shel脚本中,调度框架调度脚本或者直接在服务器中使用crontab来定时

[root@node01 ~]# vi /hyk/job/myjob.sh
添加以下内容
#!/bin/bash
/opt/module/Sqoop/sqoop/bin/sqoop export \
--connect jdbc:mysql://localhost:3306/news_db \
--username root \
--password 123456 \
--table firstDayAnalysis \
--export-dir /user/hive/warehouse/news_db.db/first_day_analysis \
--input-fields-terminated-by "\001" \
--input-null-string '\\N' \
--input-null-non-string '\\N' \
--update-mode allowinsert \
--update-key accessPageDate \
--num-mappers 1

授子可执行权限:
[root@node01 ~]# chmod a+x /hyk/job/myjob.sh

定时:

[root@node01 ~]# crontab -e
* 2 * * * /hyk/job/myjob.sh >> /hyk/job/myjob.1og
发布了59 篇原创文章 · 获赞 4 · 访问量 4486

猜你喜欢

转载自blog.csdn.net/weixin_45102492/article/details/104608162