SSH を使用してマスターノードに接続すると、CLI 内のジョブの詳細な設定とステータスを表示できます。マスターノードのパブリック IP アドレスは、クラスターの概要ページに表示されます。

クラスター上の環境変数

インスタンスに環境変数が設定されています。 頻繁に使用される環境変数は次のとおりです。
  • JAVA_HOME

  • HADOOP_HOME

  • HADOOP_CONF_DIR

  • HADOOP_LOG_DIR

  • YARN_LOG_DIR

  • HIVE_HOME

  • HIVE_CONF_DIR

  • PIG_HOME

  • PIG_CONF_DIR

スクリプト内の変数を参照可能です。 EMR クラスターでの予期しないエラーの発生を防ぐため、変数の値は変更しないことを推奨します。

マスターノードへの接続

  1. SSH を使用してマスターノードに接続するには、次のコマンドを実行します。 Host セクションのマスターノードのパブリック IP アドレスはクラスターリストページで 確認できます。
    ssh root@ip.of.master
  2. クラスターの作成時に設定したパスワードを入力します。

パスワードなしで SSH を使用してマスターノードへ接続

通常、管理と操作を行うにはクラスターに接続する必要があります。 パスワードなしで SSH を使用すると、マスターノードへ短時間で接続することができます。既定でクラスター内のマスターノードにはパブリック IP アドレスが割り当てられます。 手順:
  1. パスワードを使用して、ルートユーザーとしてマスターノードに接続します。
  2. Hadoop ユーザーまたは HDFS ユーザーに切り替えます。

Linux での SSH の使用

  1. 秘密キーファイルをローカルシステムに送信します。
    sz ~/.ssh/id_rsa
  2. ローカルコンピューターに戻り、マスターノードに再度接続します。
    ssh -i private_key_path/id_rsa hadoop@120.26.221.130

    秘密キーファイルが 1 つのみの場合、~/.ssh/ ディレクトリに格納すると、都度- i オプションを使用してキーパスを指定しなくても、即時に使用することができます。

Windows での SSH の使用

Windows で、パスワードなしで SSH を使用してマスターノードに接続する方法は複数あります。 方法は次のとおりです。
  • 方法 1: PuTTY を使用する
    1. PuTTY のダウンロードをクリックします。
    2. このリンクから PuTTYgen をダウンロードします。
    3. PuTTYgen を起動し、秘密キーをロードします。
      重要 秘密キーは安全に保管してください。 秘密キーが盗まれた場合は新しいキーを生成してください。
    4. 既定の設定で秘密キーを保存します。 .ppk 拡張子を有する PuTTY の秘密キーファイルが生成されます。
    5. PuTTY を実行し、設定ページで [セッション] を選択します。
    6. ログインユーザー名で接続するノードのパブリック IP アドレスを入力します。 例:hadoop@MasterNodeIP 。
    7. 設定ページで、[接続] > [SSH] > [認証]を選択します。
    8. 生成された PPK ファイルを選択します。
    9. [開く]をクリックし、マスターノードに接続します。
  • 方法 2:Cygwin または MinGW を使用する

    Cygwin と MinGW は、Windows 上で Linux をコンパイルするための簡単なツールです。

    「Linux での SSH の使用」のセクションに記述されている操作方法をご参照ください。

    MinGW の使用を推奨します。MinGW は最もコンパクトな Windows 上での SSH の使用方法です。 公式ウェブサイトが読み込めない場合は、「Git for Windows」をダウンロードし、デフォルトの Git BASH を使用します。

Hadoop、Spark、Ganglia の Web UI の表示

上記のパスワードなしで SSH を使用してマスターノードへ接続手順が完了していることをご確認ください。
セキュリティ上の理由から、EMR クラスター内の Hadoop、Spark、Ganglia をモニタリングするための Web UI のポートは閉じられます。 これらの Web UI にアクセスする場合は、SSH トンネルを作成し、ポートフォワーディングを有効化する必要があります。 方法は次のとおりです。
重要 次の操作は、クラスターノードではなく、ローカルコンピューターに基づいています。
  • 方法 A:動的ポートフォワーディング
    • 秘密キーの使用:

      ローカルコンピューターと EMR クラスター内のマスターノード上の動的ポート間の通信を可能にするため、SSH トンネルを作成します。

      ssh -i /path/id_xxx -ND 8157 root@masterNodeIP
    • ユーザー名とパスワードの使用:
      ssh -ND 8157 root@masterNodeIP

    8157 をローカルコンピューター上の使用されていないポート番号に置き換えます。

    動的ポートフォワーディングが完了したら、次の方法で Web UI を表示します。
    • 推奨方法:

      Chrome ブラウザの使用を推奨します。 Web UI にアクセスするには、次のコマンドを実行します。
      chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/

      Windows の場合、一時ファイルパスの例は d:/tmppath になります。 Linux と OSX の場合、一時ファイルパスの形式は /tmp/ になります。

      Chrome では、オペレーティングシステムに基づいて異なるパスにインストールされます。詳細については、次の表をご参照ください。
      OS Chrome path
      Mac OS X /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
      Linux /usr/bin/google-chrome
      Windows C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
    • 拡張子:

      • Chrome 拡張機能を使用して Web UI を表示します。
        1. Chrome 拡張機能SwitchyOmegaをインストールします。
        2. インストールが完了したら、SwitchyOmega のアイコンをクリックし、ポップアップメニューの [オプション] をクリックして設定を行います。
        3. [新しいプロファイル] をクリックします。 [プロファイル名] フィールドに「SSH トンネル」と入力します。 プロファイルのタイプの [PAC プロファイル] をクリックします。
        4. PAC スクリプトエディターで、次のコードを入力します。
          function regExpMatch(url, pattern) {    
            try { return new RegExp(pattern).test(url); } catch(ex) { return false; }    
          }
          
          function FindProxyForURL(url, host) {
              // Important: replace 172.31 below with the proper prefix for your VPC subnet
          
              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";
          
              return 'DIRECT';
          }
        5. 左側のナビゲーションウィンドウで、 [変更の適用] をクリックして設定を完了します。
        6. CLI を開始します。 次のいずれかの方法を選択し、対応するコマンドを実行します。
          //Method a: Use a private key
          ssh -i /path/id_xxx -ND 8157 hadoop@masterNodeIP
          //Method b: Use a username and password
          ssh -ND 8157 hadoop@masterNodeIP
        7. Chrome メニューの SwitchyOmega アイコンをクリックします。ドロップダウンリストから、[SSH トンネル] を選択します。
        8. アドレスバーに、ノードの IP アドレスとポート番号を入力して Web UI にアクセスします。ノードは、SSH コマンドを使用して接続するノードを指します。通常、このノードはマスターノードです。 頻繁に使用されるポートは、YARN のポート 8088、HDFS のポート 50070 の 2 つです。
        この方法では、Web ページの閲覧とクラスターの Web UI の使用を同時に行うことができます。
      • ローカルコンピューターと EMR クラスターのマスターノードの間に SSH トンネルを作成後、ブラウザーを介して Hadoop、Spark、Ganglia の Web UI を表示するローカルエージェントを設定する必要があります。 手順:
        1. Chrome または Firefox を使用していると仮定します。 FoxyProxy Standard をダウンロードをクリックします。
        2. インストール完了後、ブラウザを再起動し、テキストエディターを開いて次のコードを入力します。
          <? xml version="1.0" encoding="UTF-8"?  >
          <foxyproxy>
          <proxies>
          <proxy name="aliyun-emr-socks-proxy" id="2322596116" notes="" fromSubscription="false" enabled="true" mode="manual" selectedTabIndex="2" lastresort="false" animatedIcons="true" includeInCycle="true" color="#0055E5" proxyDNS="true" noInternalIPs="false" autoconfMode="pac" clearCacheBeforeUse="false" disableCache="false" clearCookiesBeforeUse="false" rejectCookies="false">
          <matches> 
          <match enabled="true" name="120.*" pattern="http://120.*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" ></match> 
          </matches>
          <manualconf host="localhost" port="8157" socksversion="5" isSocks="true" username="" password="" domain="" ></manualconf> 
          </proxy>
          </proxies>
          </foxyproxy>
          例:
          • ローカルコンピューターのポート 8157 を使用して、クラスターのマスターノードへの SSH トンネルを確立します。
          • 120.* をマスターノードの実際の IP アドレスと置き換えます。
        3. Chrome メニューの [Foxyproxy] のアイコンをクリックします。ドロップダウンリストから、[オプション]を選択します。
        4. [インポート/エクスポート] を選択します。
        5. 作成した XML ファイルを選択します。 [開く]をクリックします。
        6. [FoxyProxy の設定のインポート] のダイアログボックスの [追加] をクリックします。
        7. [Foxyproxy] アイコンをクリックします。ドロップダウンリストから、[すべての URL に Proxy aliyun-emr-socks-proxy を使用する] を選択します。
        8. アドレスバーに localhost: 8088 を入力して、Hadoop の Web UI を表示します。
  • 方法 2:ローカルポートフォワーディング
    重要 この方法で Web UI を表示した場合、サブページを開こうとするとエラーが発生します。
    • 秘密キーの使用:
      ssh -i /path/id_rsa -N -L 8157:masterNodeIP:8088 hadoop@masterNodeIP
    • ユーザー名とパスワードの使用:
      ssh -N -L 8157:masterNodeIP:8088 hadoop@masterNodeIP 
    パラメーターの説明:
    • path :秘密キーファイルが格納されているパス。
    • masterNodeIP :接続するマスターノードの IP アドレス。
    • 8088 :マスターノードのリソースマネージャーの Web UI によって使用されるポート。