2017-11-12 17 views
0

oozieを使用して、エッジノードからHDFSにファイルをコピーしようとしています。多くの人は、これを実現するためにパスワードを少なく設定することを提案しました。oozieを使用してローカルからhdfsにファイルをコピーする方法

サービスユーザーであるため、Iomeはoozieにログインできません。

パスワード以外の方法はありません。

ありがとうございます。

+0

edgenodeにアクセスしようとすると、認証メカニズムが必要です。 oozieアクションは、クラスタのデータノードでmap-reduceジョブとして実行されるためです。 edgenodeでファイルを取得する必要がある場合は、いくつかの認証メカニズムが必要です。秘密鍵と公開鍵を使用したパスワードレス認証、またはLinuxのexpectコマンドを使用することができます。私は、より少ない認証でパスワードを置くことを好むでしょう。 –

+0

また、パスワードなし認証を実行する場合は、必ずしもoozieユーザーとしてログインする必要はありません。 oozie sshアクションを使用している場合、oozieランチャーはsshコマンドを実行し、パスワードの少ない認証を可能にするために公開鍵と秘密鍵が必要です。 oozieシェルアクションを使用すると、あなたのアクションは、あなたのシェルアクションが起動された糸ユーザーまたはあなたのLinuxユーザーによって実行されます(このリンクのようにクラスタ糸の設定で設定されているものを正確に知るため):https:// blog .cloudera.com/blog/2013/03/how-to-use-oozie-shell-and-java-actions /)。 –

+0

お返事ありがとうございます。パスワードのない認証を可能にするために老朽化した公開鍵を取得する方法については、今でもどのように把握することができません。 –

答えて

0

パスワード以外のssh以外の2つのオプションがあります。 1.私の優先オプション:JSch Javaライブラリを使用し、引数として実行されるシェルスクリプトを受け入れるJavaアプリケーションを作成します。 JSchを使用すると、設定されたエッジノードでsshが実行され、エッジノードでシェルスクリプトが実行されます。 jschでは、edgenodeのユーザー名とパスワードを設定できます。 'JCEKS'ファイルを使用してパスワードを保存します。 次に、JSchを使用して作成されたJavaアプリケーションを実行するために、OozieでJavaアクションを追加します。 2. "/ usr/bin/expect"ライブラリを使用してシェルスクリプトを作成します。シェルスクリプトはedgenodeに対してsshを実行し、設定されたシェルスクリプトを実行します。詳細はこちらUse expect in bash script to provide password to SSH command

関連する問題