2016-06-17 9 views
0

Sqoopジョブは、常にCLIでパスワードの入力を要求します。これを避けるため、プロパティsqoop.metastore.client.record.passwordをtrueに設定する必要があります。しかし、どこでもsqqop_site.xmlでこの値を変更する必要があると言われています。とにかく私はこの値を1つの仕事だけに設定できますか?私は以下のようなジョブを作成しようとしたとsqoopはそれが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

これらのパラメータは、sqoop-site.xml sqoop.metastore.client.autoconnect.usernameに設定してください。 sqoop.metastore.client.autoconnect.password – marjun

+0

sqoop_site.xmlファイルを変更しません。私はちょうど1つの仕事のために変わってほしい – Sathyaraj

答えて

1

パスワードをファイルに保存し、パラメータ--password-fileを使用してこのファイルへのパスを指定することができます。

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

Sqoopは、ファイルからパスワードを読み込み、ジョブ設定でパスワードをさらすことなく、安全な手段を用いて、MapReduceのクラスタに渡します。

+0

これはちょうど私達がこの問題を解決した方法です。格納されたパスワードの場所がパーミッションやグループなどでロックされている限り、比較的安全です。私たちの場合は、ハープ・サイドでパスワードを暗号化してから、sqoopコマンドをそれをsqoopに渡す前にパスワードを解読できるラッパープログラム。 –

+0

./bin/sqoop export --bindir ./ --connect jdbc:mysql:// localhost/DBname --username DB_Username --passoword yourDBpassword - テーブルtablename --export-dir/hdfspath –

関連する問題