- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 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/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!