hba*_*hba 6 sql-server hadoop jdbc sqoop oozie
我正在使用SQOOP将信息从HDFS导出到MS-SQL.我正在通过OOZIE运行SQOOP.现在我已经为OOZIE工作流程中的jdbc连接硬编码了uid,pwd.一旦我切换到prod,我将无法做到这一点.在这种情况下传递身份验证信息的最佳方法是什么?
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<arg>export</arg>
<arg>--connect</arg>
<arg>jdbc:sqlserver://$sqlServerIP:1433</arg>
<arg>--table</arg>
<arg>tableName</arg>
<arg>--export-dir</arg>
<arg>/user/sqoop/file</arg>
<arg>--username</arg>
<arg>me</arg>
<arg>--password</arg>
<arg>password</arg>
</sqoop>
Run Code Online (Sandbox Code Playgroud)
我可以像$ userName,$ password这样的参数传递它们.但实际的uid/pwd仍将显示在oozie Web控制台中.
UPDATE
我已经尝试了两种方法(如下所示)...在VIM中我创建了pwd以获得密码(没有空格或其他任何东西).叫这个pwd.
1)我尝试使用文件系统.但是我得到一个IOException,说该文件不存在.查看代码后,看起来sqoop使用传递的conf来访问fs.所以我假设在通过oozie运行时它只能访问HDFS.
2)我将密码文件加载到hdfs上的随机位置./ users/my-name/pwd(pwd是文件).现在它可以访问该文件(因为我没有得到IOException).但是它无法连接到SQLServer.我不确定我需要做什么才能让它发挥作用?
更新2
我正在创建密码文件,如下所示:echo "pwd" > my.password
这将EOL添加到我更改为my.password的文件中echo -n "pwd" > my.password,现在它可以正常工作.
| 归档时间: |
|
| 查看次数: |
4987 次 |
| 最近记录: |