一、问题
1.创建job
sqoop job -create job1 -- import --connect jdbc:mysql://192.168.14.217:3306/workflow --username root --password gzp --table project --target-dir /sqoop/job/job1
2.在执行如下命令提示输入密码:
- sqoop job --delete jobname
- sqoop job --exec jobname
- sqoop job --show jobname
二、解决方案
- 修改配置文件:进入sqoop的conf目录 vim 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>
注:这种方式代表你所创建的job在执行上述操作时都是不需要密码的,对那些需要保密的文件不支持这样做 。下面这种方式是通过在创建文件时指定不需要输入密码
2.在命令行输入:echo -n "a" >/usr/local/sqoop147hadoop260/.mysql.password (解释:以echo的方式将密码a写入隐藏文件.mysql.password,此处密码应为你连接数据库的密码)如下:
在创建job时指定哪个job可以免密执行操作,并且在创建job命令时不用指定--password. 命令如下:
sqoop job -create job2 -- import --connect jdbc:mysql://192.168.14.217:3306/workflow --username root --table project --password-file file:///usr/local/sqoop147hadoop260/.mysql.password --target-dir /sqoop/job/job2