Amazon EMR クラスターでホストされている Apache Spark ウェブユーザーインターフェイスを表示したいと考えています。
解決策
Spark 履歴サーバーは、Amazon EMR クラスターで実行中および完了した Spark ジョブのステータスを表示できるウェブユーザーインターフェイスです。
パブリックサブネットまたはプライベートサブネットでホストされている Spark ユーザーインターフェイスにアクセスするには、永続アプリケーションユーザーインターフェイスまたはクラスター上のアプリケーションユーザーインターフェイスを使用します。
永続的なアプリケーションユーザーインターフェイス
Amazon EMR クラスターでは、apppusher デーモンが Spark イベントログを定期的に Amazon EMR プロダクションバケットに送信します。永続的な Spark ユーザーインターフェースは、イベントログを使用して Spark アプリケーションを表示します。
この機能は、アプリケーションのイベントログディレクトリが Hadoop 分散ファイルシステム (HDFS) にある場合に機能します。デフォルトでは、Amazon EMR はイベントログを HDFS の /var/log/spark/apps ディレクトリに保存します。デフォルトディレクトリを Amazon Simple Storage Service (Amazon S3) などの別のファイルシステムに変更した場合、この機能は機能しません。詳細については、「Considerations and limitations (考慮事項と制限事項)」を参照してください。
アクティブなクラスターと終了したクラスターのアプリケーション履歴と関連するログファイルにアクセスできます。ログは、アプリケーション終了後 30 日間利用できます。詳しくは、「View persistent application user interfaces in Amazon EMR (Amazon EMR での永続アプリケーションユーザーインターフェイスの表示)」を参照してください。
クラスター上のアプリケーションユーザーインターフェイス
プライマリノードはクラスター上のユーザーインターフェイスをホストし、ウェブサーバーにアクセスするには SSH 接続が必要です。
クラスター上のユーザーインターフェイスにアクセスするには、次の手順を実行します。
- SSH を使用してプライマリノードに接続します。
- 動的ポート転送で SSH トンネリングを設定します。
- Firefox 用の FoxyProxy や Chrome 用の SwitchyOmega などのアドオンを使用して SOCKS プロキシ設定を管理するようにインターネットブラウザを設定します。
**注:**このメソッドは、テキストパターンに基づいて自動的に URL をフィルタリングします。また、この方法では、プロキシ設定はプライマリノードの DNS 名の形式と一致するドメインに制限されます。
プライベートサブネットのクラスター上のユーザーインターフェイスには、VPN 接続または AWS Direct Connect を介してローカルネットワークを使用しない限り、直接アクセスすることはできません。また、AWS とローカルネットワークをまたぐ通信ができるようにルートを設定する必要があります。
または、パブリックサブネットでホストされている踏み台サーバーまたはジャンプサーバーを使用してプライベートサブネットに接続することもできます。次に、動的ポート転送を使用して SSH トンネリングを作成します。詳細については、「Securely access web interfaces on Amazon EMR launched in a private subnet (プライベートサブネットで起動された Amazon EMR のウェブインターフェイスに安全にアクセスする)」を参照してください。