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中提示输入密码才能运行。
答案 0 :(得分:1)
您可以将密码保存在文件中,并使用参数 - 密码文件指定此文件的路径。
--password-file 'Set path for a file containing the authentication password'
然后,Sqoop将从文件中读取密码,并使用安全方式将其传递给MapReduce群集,而不会在作业配置中公开密码。