Sqoop Job密码问题

时间:2016-06-17 06:18:48

标签: hadoop sqoop bigdata

Sqoop作业始终在CLI中提示输入密码。为了避免这种情况,有人说应该将属性sqoop.metastore.client.record.password设置为true。但到处都说我需要在sqqop_site.xml中更改此值。无论如何,我可以将这个值单独设置为一个工作。我试图创建一个像下面这样的工作,而sqoop无法创建它

sqoop job --create TEST -D sqoop.metastore.client.record.password=true -- import \
--connect jdbc:netezza://xx.xxx.xx.xxx/database \
--username username \
--password password \
--table tablename \
--split-by key \
--hcatalog-database hivedatabase \
--hcatalog-table hivetable \
--hcatalog-storage-stanza 'STORED as ORC TBLPROPERTIES('orc.compress'='NONE')' \
-m 100

错误:

Warning: /usr/iop/4.1.0.0/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
16/06/17 07:10:08 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6_IBM_20
16/06/17 07:10:08 ERROR tool.BaseSqoopTool: Error parsing arguments for job:
16/06/17 07:10:08 ERROR tool.BaseSqoopTool: Unrecognized argument: -D
16/06/17 07:10:08 ERROR tool.BaseSqoopTool: Unrecognized argument: sqoop.metastore.client.record.password=true

任何人都可以帮助我。我需要在CLI中提示输入密码才能运行。

1 个答案:

答案 0 :(得分:1)

您可以将密码保存在文件中,并使用参数 - 密码文件指定此文件的路径。

--password-file  'Set path for a file containing the authentication password'

然后,Sqoop将从文件中读取密码,并使用安全方式将其传递给MapReduce群集,而不会在作业配置中公开密码。