sqoop运行job避免输入密码的解决方案

最近在增量同步mysql的数据到hive中,用sqoop进行增量导入,将增量任务设置为sqoop的job,每天定时跑sqoop的job就可以了,在创建job的时候sqoop给出提示,不要在命令行使用明文密码.
创建job命令:

bin/sqoop job --create test01job -- import \
--connect jdbc:localhost:3306/test --username root --password 123456 \
 --table users --hive-import --hive-table ods.users --fields-terminated-by "\t" \
 --incremental append \--check-column id --last-value 1 -m 1

提示不要使用明文
任务创建好以后,尝试去执行任务,果然有坑,创建任务时候的明文密码被忽略了,要手动输入密码,这个需要解决才能定时执行,网上查找了一下以后,有两个方法能解决需要手动输入密码这个问题.
手动输入密码

  1. 设置sqoop-site.xml文件
    在sqoop的conf目录下,找到sqoop-site.xml文件,在文件中添加下面这个配置,就可以避免输入密码这个问题.这个设置了以后,在第一次执行的时候需要输入密码.以后执行的时候就不需要输入密码了.
  <property>
    <name>sqoop.metastore.client.record.password</name>
    <value>true</value>
    <description>If true, allow saved passwords in the metastore.
    </description>
  </property>

  1. 在创建job的时候使用password-file代替password
    在sqoop的官方文档中,连接密码是支持用password-file这种文件方式来传递的…亲测,password-file文件在本地和hadoop集群上都可以生效.
    创建password文件,echo '123456' > test.password.
    测试本地password文件
    创建job

    bin/sqoop job --create test01job -- import \
     --connect jdbc:localhost:3306/test --username root \
     --password-file file:///home/data/sqoop/test.password \
     --table users --hive-import --hive-table ods.users \
     --fields-terminated-by "\t" \
     --incremental append \--check-column id \
     --last-value 1 -m 1
    

    测试hadoop集群password文件,
    将password文件上传到hdfs.hdfs dfs -put test.password /user/root/
    创建job

    bin/sqoop job --create test01job -- import \
     --connect jdbc:localhost:3306/test --username root \
     --password-file /user/root/test.password \
     --table users --hive-import --hive-table ods.users \
     --fields-terminated-by "\t" \
     --incremental append \--check-column id \
     --last-value 1 -m 1
    

亲测,password文件在本地和hdfs上均有效.
参考. sqoop官网

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值