オプション 1: ローカルポートフォワーディングを使用してプライマリノードへの SSH トンネルをセットアップする - Amazon EMR

オプション 1: ローカルポートフォワーディングを使用してプライマリノードへの SSH トンネルをセットアップする

プライマリノードのローカルウェブサーバーに接続するために、コンピュータとプライマリノードの間に SSH トンネルを作成します。これはポートフォワーディングとも呼ばれます。SOCKS プロキシを使用しない場合は、ローカルポートフォワーディングを使用してプライマリノードへの SSH トンネルをセットアップすることができます。ローカルポートフォワーディングでは、トラフィックをプライマリノードのローカルウェブサーバーにある特定のリモートポートに転送するために使用する、未使用のローカルポートを指定します。

ローカルポートフォワーディングを使用して SSH トンネルをセットアップするには、プライマリノードのパブリック DNS 名と、キーペアのプライベートキーファイルが必要です。マスターパブリック DNS 名を特定する方法については、「古いコンソールを使用してプライマリノードのパブリック DNS 名を取得するには」を参照してください。キーペアへのアクセスに関する詳細は、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「Amazon EC2 のキーペア」を参照してください。プライマリノード上で表示するサイトの詳細については、「Amazon EMR クラスターでホストされているウェブインターフェイスを表示する」を参照してください。

OpenSSH でローカルポートフォワーディングを使用してプライマリノードへの SSH トンネルをセットアップする

ターミナルでローカルポートフォワーディングを使用して SSH トンネルをセットアップするには
  1. インバウンド SSH トラフィックを許可していることを確認します。手順については、「接続する前に: インバウンドトラフィックを承認する」を参照してください。

  2. ターミナルウィンドウを開きます。Mac OS X で、[Applications] > [Utilities] > [Terminal] を選択します。他の Linux ディストリビューションでは、ターミナルは通常、[Applications] > [Accessories] > [Terminal] にあります。

  3. 次のコマンドを入力して、ローカルマシンで SSH トンネルを開きます。このコマンド例では、ローカルポート 8157 (ランダムに選択された未使用のローカルポート) からマスターノードのローカルウェブサーバーのポート 8088 にトラフィックを転送することによって、ResourceManager ウェブインターフェイスにアクセスします。 

    コマンドの、~/mykeypair.pem.pem ファイルの場所とファイル名に、ec2-###-###.compute-1.amazonaws.com をクラスターのマスターパブリック DNS 名に置き換えます。別のウェブインターフェイスにアクセスするには、8088 を該当するポート番号に置き換えます。たとえば、Zeppelin インターフェイスの場合、80888890 に置き換えます。

    ssh -i ~/mykeypair.pem -N -L 8157:ec2-###-##-##-###.compute-1.amazonaws.com:8088 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

    -L はローカルポートフォワーディングを使用することを示します。これにより、マスターノードのローカルウェブサーバーの指定したリモートポートにデータを転送するために使用するローカルポートを指定できます。

    このコマンドを発行すると、ターミナルは開いたままになり、応答を返しません。 

  4. ブラウザから ResourceManager ウェブインターフェイスを開くには、アドレスバーに http://localhost:8157/ と入力します。

  5. プライマリノードのウェブインターフェイスに対する操作が終了したら、ターミナルウィンドウを閉じます。