トンネリングを利用したウェブUIアクセス
Cloud Hadoop サービスのクラスタ管理の中からトンネリングを通じて管理UIページへアクセスする方法をご説明します。
基本的にはクラスタ生成の際に入力したクラスタ管理者アカウント及びパスワードを通じてAmbari ウェブUIアクセスが可能です。しかし、HDFS NameNode UIなど一部のメニューはSSHトンネリングを通じてのみアクセスできます。
次のweb UIにアクセスするためにはSSHトンネリング設定作業が必要です。
- HDFS NameNode UI
- YARN Resource Manager UI
- Spark JobHistory UI
- Oozie web UI
- HBase Master UI
事前作業
SSHトンネリング接続をするためには次のような作業が必要です。
Step 1. 当該クラスタ内にパブリックIPが割り当てられたノードが必要です。
Cloud Hadoopの場合、クラスタ生成の際にambari serverが実行されるマスターノードにパブリックIPが割り当てられます。コンソールからクラスタ詳細をみる画面でパブリックIPが割り当てられているか確認できます。
Step 2. クラスタACGにユーザーのIPと22番ポートが登録されていなければなりません。
ACG設定の変更はクラスタの詳細情報画面からACGメニューを通じて可能です。アクセスソースはブラウザを使用するパソコンの ipであるのでACGルール設定画面で my ipボタンをクリックして入力できます。
プロトコル | アクセスソース | 許可ポート | 備考 |
---|---|---|---|
TCP | my ip | 22 | ssh トンネリングアクセス用 |
トンネルを作成するためには以下の二つの方法の中からユーザー環境に沿って選択して進めます。トンネリングが完了したらローカルパソコンで 9876ポートに転送されるトラヒックがクラスタのマスターノードにラウティングされます。
[Case 1] SSH命令を使用してトンネルを作成
SSH(Secure Shell)トンネリングはローカルパソコンのポートをCloud Hadoop クラスタ以前にパブリックIPアドレスの割り当て及びポートオープンされたマスターノードに接続します。
ローカルポートに転送されたトラヒックはSSH接続で当該マスターノードにラウティングされます。まるでマスターノードで始まったように見え、レスポンスはトンネルを通じてラウティングされます。
SSH命令を使用してSSHトンネルを作成するためには次の命令を使用します。Cloud Hadoopで生成したクラスタのSSHユーザーは sshuserであり、変更することができません。事前作業で作ったパブリックIPとクラスタ生成の際に設定した認証キーが必要です。
# ssh -i <PEM-FILE-PATH> -C2qTnNf -D 9876 sshuser@<PUBLIC_IP>
ssh -i ~/Download/sample-key.pem -C2qTnNf -D 9876 sshuser@10.10.10.10
この命令はローカルポート 9876でSSHを通じてクラスタにトラヒックをラウティングする接続をつくります。オプションは次の通りです。
- D 9876: トンネルを通じてトラヒックをラウティングするローカルポート
- C: ウェブトラヒックはほとんどテキストであるため、全てのデータを圧縮
- 2: SSHがプロトコルバージョン2のみ試みるよう強制
- q: 自動モード
- T: ポート転送後、下位 tty 割り当ての無効化
- n: ポート転送後、 STDINを読み取らない
- N: ポート転送後、遠隔命令を実行しない
- f: バックグラウンドで実行
[Case 2] PuTTYを使用してトンネルを作成
PuTTYはWindows用グラフィックSSHクライアントです(参照: PuTTY Documentation Page)。
PuTTYを開いて接続情報を入力します。
ダイアログボックス左側にあるCategory ウィンドウから Connection > SSH > Tunnelsを選択します。
Options controlling SSH port forwarding フォームに次の情報を提供します。
- Source port: 送信しようとするクライアントのポート(例: 9876)
- Destination: 当該クラスタのパブリックIPアドレスまたはPublicドメインアドレス
- Dynamic: 動的SOCKSプロキシラウティングの有効化
SSH keyでクラスタ認証キーを入力します。PuTTYで.pemキーを変換して呼び出す方法は サーバ直接アクセスガイドをご参照ください。
Add をクリックして Openをクリックし、サーバにログインします。
一度作成されたトンネルは PuTTYで当該セッションを保存しておいて必要な際にロードしてアクセスできます。
ブラウザでトンネルの使用
この段階ではMozilla Firefoxブラウザの使用をお勧めします。このブラウザは全てのプラットフォームで同じプロキシ設定を提供します。Google Chromeなどの他の最新ブラウザにはトンネルから作動するためFoxyProxyなどの拡張が必要な場合があります。
localhostとSOCKS v5プロキシトンネルを作る際に使用したポートを使用するようにブラウザを構成します。
Firefox
設定> ネットワークプロキシで次のように設定します。
macOS Chrome
cmdで /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy server="socks5://127.0.0.1:9876"
を実行します。
Windows Chrome
Chromeアイコンで右ボタンをクリックして 属性を選択します。
ショートカット タブの 対象 の最後に
--proxy-server="socks5://127.0.0.1:9876"
を追加します。
ブラウザで管理UIにアクセスする
注意 proxy-serverを設定した後、当該ウェブブラウザを全てもう一度実行すると正常に作動します。
トンネリング設定前に Ambari Quick Linksにあるページにアクセスされなかったと思います。これからはプロキシ設定をしたブラウザを通じてその他管理UIにアクセスできることを確認できます。例えば、 Active ResourceManager コンポーネントがホストm-002-cluster-test-hd
にあれば http://m-002-cluster-test-hd:8088/cluster
から Resource Manager UIにアクセスできはずです。
以前はトンネリングなしでアクセスされたUIの場合、既存のアドレスでパブリックIPアドレス部分をパブリックIPアドレスが割り当てられたノードのプライベートIPアドレスまたはホストネームに修正してアクセスする必要があります。
例えば、元々はトンネリングなしで Ambari UIに http://pub-1vo2v.hadoop.ntruss.com:8080/#/login
アドレスでアクセスしたとすれば、トンネリング作業後は http://m-001-cluster-test-hd:8080/#/login
からアクセスできます。
関連情報へショートカット
Hadoopクラスタの生成、管理及び使用については以下の使用ガイドをご参照ください。