gpt4 book ai didi

sql-server - 如何通过 OOZIE 向 SQOOP 提供密码以连接到 MS-SQL?

转载 作者:可可西里 更新时间:2023-11-01 14:17:03 28 4
gpt4 key购买 nike

我正在使用 SQOOP 将信息从 HDFS 导出到 MS-SQL。我正在通过 OOZIE 运行 SQOOP。现在我已经在 OOZIE 工作流中为 jdbc 连接硬编码了 uid 和 pwd。一旦我切换到产品,我将无法执行此操作。在这种情况下传递身份验证信息的最佳方式是什么?

<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>

我可以将它们作为 $userName、$password 等参数传入。但实际的 uid/pwd 仍会显示在 oozie web 控制台中。

更新

我已经尝试了两种方法(如下所示)来做到这一点...在 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,现在可以使用了。

最佳答案

我认为您可以利用指定 --password-file 参数,这样 Oozie 将永远不会看到密码。查看Sqoop User Guide了解更多详情。

关于sql-server - 如何通过 OOZIE 向 SQOOP 提供密码以连接到 MS-SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19646645/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com