私の質問は非常に単純です。50 ノードの Hadoop クラスターをセットアップしたいのですが、50 ノード間でパスフレーズレスをセットアップするにはどうすればよいですか。手動操作が非常に難しい場合!前もって感謝します!
2 に答える
ノード間で SSH をセットアップする必要はありません。マスターとスレーブ間で単方向に設定するだけで十分です。(したがって、マスターのみがパスワードなしでスレーブにアクセスする必要があります)。
通常のアプローチは、スレーブ ファイルをループしてスレーブにログインし、マスターの公開鍵をスレーブの承認された鍵にコピーする bash スクリプトを作成することです。
Praveen Sripati のブログで簡単なワークスルーを見ることができます。
ただし、私は管理者ではないため、よりスマートな方法があるかどうかはわかりません。たぶん、これはSuperuser.comに適しています
多分これは助けることができます:
シームレスに動作させるには、クラスタ内のマシンから Hadoop ユーザーがパスワードなしでログインできるように SSH を設定する必要があります。これを実現する最も簡単な方法は、公開鍵と秘密鍵のペアを生成し、クラスター全体で共有される NFS の場所に配置することです。
最初に、hadoop ユーザー アカウントで次のように入力して、RSA キー ペアを生成します。
% ssh-keygen -t rsa -f ~/.ssh/id_rsa
パスワードなしのログインが必要な場合でも、パスフレーズのないキーは適切な方法とは見なされません (付録 A で説明されているように、ローカルの疑似分散クラスターを実行するときに空のパスフレーズを使用してもかまいません)。ssh-agent を使用して、接続ごとにパスワードを入力する必要がないようにします。
秘密鍵は -f オプションで指定されたファイル ~/.ssh/id_rsa にあり、公開鍵は同じ名前に .pub を追加したファイル ~/.ssh/id_rsa.pub に格納されています。
次に、接続したいクラスター内のすべてのマシンの ~/.ssh/authorized_keys ファイルに公開鍵があることを確認する必要があります。前述のように、hadoop ユーザーのホーム ディレクトリが NFS ファイルシステムである場合は、次のように入力して、クラスター全体でキーを共有できます。
% cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ホーム ディレクトリが NFS を使用して共有されていない場合は、公開鍵を他の方法で共有する必要があります。
sshagent が実行されていることを確認してマスター マシンからワーカー マシンに SSH で接続できることをテストし、3 次に ssh-add を実行してパスフレーズを保存します。パスフレーズを再度入力しなくても、ワーカーに ssh できるはずです。
出典: Tom White、Hadoop: The Definitive Guide、301 ページ