クラスターの内部ネットワーク構造を公開することなく、SSH トンネルを使用してオープンソースコンポーネントの Web UI に安全にアクセスできます。
コンポーネントの Web UI にアクセス可能なすべての方法については、「オープンソースコンポーネントの Web UI の表示」をご参照ください。
前提条件
ローカルポートフォワーディングによるアクセス
この方法ではトップレベルページのみ表示可能で、詳細なタスク情報をドリルダウンして表示することはできません。
ローカルポートフォワーディングは、マスターノード上のポートをクライアントマシンのローカルポートにマッピングし、マスターノード上で実行中のアプリケーションの Web UI に直接アクセスできるようにします。
1. SSH トンネルの作成
クライアントマシンでターミナルを開き、SSH を使用してクラスターのマスターノードに接続します。クラスターの設定に応じて、パスワードまたは SSH キーペアで認証を行います。
キー認証
ssh -i <path_to_private_key_file> -N -L <local_port>:<master_node_name>:<component_port> root@<master_node_public_ip>
パラメーター:
-
-i:認証用の秘密鍵ファイルを指定します。 -
-N:リモートコマンドを実行しません。ポート転送のみを行う場合にこのオプションを使用します。 -
-L:ローカルポートフォワーディングを指定します。指定されたローカルポートからのトラフィックを、マスターノード上の指定されたリモートホストおよびポートに転送します。 -
<path_to_private_key_file>:ご利用の秘密鍵ファイルのローカルパスです。詳細については、「SSH キーペアの管理」をご参照ください。 -
<local_port>:クライアントマシン上で未使用のポートです。例:8156。 -
<master_node_name>:クラスター詳細ページの Nodes タブに表示されるマスターノードの Node Name です。詳細については、「ノード名の取得」をご参照ください。例:master-1-1。 -
<component_port>:オープンソースコンポーネントのポートです。詳細については、「オープンソースコンポーネントのデフォルトポート」をご参照ください。例:YARN UI ポートは 8088 です。 -
<master_node_public_ip>:クラスター詳細ページの Nodes タブに表示されるマスターノードの Public IP Address です。詳細については、「ノードのパブリック IP アドレスの取得」をご参照ください。
パスワード認証
ssh -N -L <local_port>:<master_node_name>:<component_port> root@<master_node_public_ip>
パラメーター:
-
-N:リモートコマンドを実行しません。ポート転送のみを行う場合にこのオプションを使用します。 -
-L:ローカルポートフォワーディングを指定します。指定されたローカルポートからのトラフィックを、マスターノード上の指定されたリモートホストおよびポートに転送します。 -
<local_port>:クライアントマシン上で未使用のポートです。例:8156。 -
<master_node_name>:クラスター詳細ページの Nodes タブに表示されるマスターノードの Node Name です。詳細については、「ノード名の取得」をご参照ください。例:master-1-1。 -
<component_port>:オープンソースコンポーネントのポートです。詳細については、「オープンソースコンポーネントのデフォルトポート」をご参照ください。例:YARN UI ポートは 8088 です。 -
<master_node_public_ip>:クラスター詳細ページの Nodes タブに表示されるマスターノードの Public IP Address です。詳細については、「ノードのパブリック IP アドレスの取得」をご参照ください。
トンネル作成後は、ターミナルウィンドウを閉じないでください。セッションはアクティブな状態を維持し、コマンドプロンプトは返されません。
2. コンポーネント Web UI へのアクセス
ブラウザーのアドレスバーに http://localhost:<local_port> と入力して、対応する Web UI にアクセスします。<local_port> は、手順 1 で指定したローカルポートに置き換えてください。たとえば、YARN UI にアクセスするには、http://localhost:8156 にアクセスします。
複数のコンポーネント Web UI に同時にアクセスする場合は、それぞれ別のローカルポートを使用して、個別のトンネルを繰り返し作成してください。
動的ポートフォワーディングによるアクセス
動的ポートフォワーディングは SOCKS プロキシを備えた SSH トンネルを作成し、Web ブラウザーなどのローカルアプリケーションがマスターノード上のオープンソースコンポーネントの Web UI にアクセスできるようにします。
1. SSH トンネルの作成
クライアントマシンでターミナルを開き、SSH を使用してクラスターのマスターノードに接続します。クラスターの設定に応じて、パスワードまたは SSH キーペアで認証を行います。
キー認証
ssh -i <path_to_private_key_file> -N -D <local_port> root@<master_node_public_ip>
パラメーター:
-
-i:認証用の秘密鍵ファイルを指定します。 -
-N:リモートコマンドを実行しません。ポート転送のみを行う場合にこのオプションを使用します。 -
-D:動的ポートフォワーディングを指定します。指定されたローカルポートで SOCKS プロキシサーバーを起動します。 -
<path_to_private_key_file>:ご利用の秘密鍵ファイルのローカルパスです。詳細については、「SSH キーペアの管理」をご参照ください。 -
<local_port>:クライアントマシン上で未使用のポートです。例:8157。 -
<master_node_public_ip>:クラスター詳細ページの Nodes タブに表示されるマスターノードの Public IP Address です。詳細については、「ノードのパブリック IP アドレスの取得」をご参照ください。
パスワード認証
ssh -N -D <local_port> root@<master_node_public_ip>
パラメーター:
-
-N:リモートコマンドを実行しません。ポート転送のみを行う場合にこのオプションを使用します。 -
-D:動的ポートフォワーディングを指定します。指定されたローカルポートで SOCKS プロキシサーバーを起動します。 -
<local_port>:クライアントマシン上で未使用のポートです。例:8157。 -
<master_node_public_ip>:クラスター詳細ページの Nodes タブに表示されるマスターノードの Public IP Address です。詳細については、「ノードのパブリック IP アドレスの取得」をご参照ください。
トンネル作成後は、ターミナルウィンドウを閉じないでください。セッションはアクティブな状態を維持し、コマンドプロンプトは返されません。
2. ブラウザープロキシの構成
動的ポートフォワーディングを有効化した後、以下のいずれかの方法でブラウザーをプロキシ使用に構成してください。
コマンドライン (Chrome)
-
ターミナルを開き、クライアントマシン上の Google Chrome のインストールディレクトリに移動します。
オペレーティングシステム
デフォルトのインストールディレクトリ
macOS X
/Applications/Google\ Chrome.app/Contents/macOS
Linux
/usr/bin/google-chrome
Windows
64 ビットおよび 32 ビットシステムのデフォルトパスは次のとおりです。
-
C:\Program Files\Google\Chrome\Application\
-
C:\Program Files (x86)\Google\Chrome\Application\
説明Chrome のデフォルトインストールディレクトリは、オペレーティングシステムによって異なります。
-
-
Google Chrome をローカル SOCKS プロキシ使用に構成し、ブラウザーを起動します。ポートが手順 1 で指定したものと一致していることを確認してください。
説明以下の例ではポート 8157 を使用しています。
macOS X
./Google\ Chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/Linux
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/Windows
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=c:\\tmppath\\
Chrome 拡張機能
ブラウザー拡張機能を使用すると、通常のブラウジングに影響を与えることなく、プロキシ設定を管理および切り替えることができます。
-
Chrome 向けの SwitchyOmega 拡張機能をインストールします。
-
拡張機能の構成ページを開きます。[新規プロファイル] をクリックし、プロファイル名(例:SSH トンネル)を入力し、プロファイルタイプとして PAC プロファイル を選択します。
-
PAC スクリプト エディターに、次のコードを入力します。
説明この例ではポート 8157 を使用しています。
function regExpMatch(url, pattern) { try { return new RegExp(pattern).test(url); } catch (ex) { return false; } } function FindProxyForURL(url, host) { if (shExpMatch(url, "*localhost*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*emr-header*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*emr-worker*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*master*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*core*")) return "SOCKS5 localhost:8157"; return 'DIRECT'; } -
左側のナビゲーションウィンドウで、[変更を適用] をクリックします。
-
ブラウザーの右上隅にある SwitchyOmega アイコンをクリックし、先ほど作成した SSH トンネル プロファイルを選択します。
3. コンポーネント Web UI へのアクセス
ブラウザーのアドレスバーに http://<master_node_name>:<port> と入力して、対応する Web UI にアクセスします。たとえば、YARN UI にアクセスするには、http://master-1-1:8088 にアクセスします。
パラメーター:
-
<master_node_name>:クラスター詳細ページの Nodes タブに表示されるマスターノードの Node Name です。詳細については、「ノード名の取得」をご参照ください。例:master-1-1。 -
<port>:対象コンポーネントのポートです。コンポーネントポートの一覧については、「オープンソースコンポーネントのデフォルトポート」をご参照ください。例:YARN UI ポートは 8088 です。
複数のオープンソースコンポーネントの Web UI にアクセスするには、URL 内のポート番号を変更するだけで済みます。
参照
-
コンソールから Web UI にアクセスする方法については、「コンソールからオープンソースコンポーネント UI にアクセス」をご参照ください。
-
よくある質問については、「よくある質問」をご参照ください。