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