E-MapReduce では『Apache Knox』がサポートされています。 Knox でサポートされているイメージを選択してクラスターを作成する場合は、パブリックネットワークから Web UI にアクセスして、YARN、HDFS、および SparkHistory のようなサービスを使用します。

準備

本ページでは E-MapReduce クラスターでの Knox の使い方の概要を説明します。

  • パブリック IP アドレスを使用した Knox のアクセスの有効化
    1. E-MapReduce の Knox のサービスポートは 8443 です。 クラスターの詳細で、クラスターが配置されている ECS セキュリティグループを見つけます。
    2. ECS コンソールで対応するセキュリティグループを変更し、インターネットインバウンド にルールを追加してポート 8443 を有効にします。
    重要
    • セキュリティのために、認証オブジェクトは限られた IP アドレス範囲でなければなりません。 0.0.0.0/0 は禁止されています。
    • セキュリティグループのポート 8443 が有効になったら、セキュリティグループ内のすべてのノード (非 E-MapReduce ECS ノードを含む) でパブリックネットワークへの入り口でポート 8443 を有効にします。
  • Knox ユーザーの設定

    Knox にアクセスするには、認証のためユーザー名とパスワードが要求されます。 認証は LDAP に基づいています。 独自の LDAP サーバーまたはクラスターの Apache ディレクトリサーバーの LDAP サービスを使用します。

    • クラスター内での LDAP サービスの使用

      方法 1 (推奨)

      ユーザー管理 ページに Knox アカウントを追加します。

      方法 2
      1. SSH を介してクラスターにログインします。詳細については、SSHを使用したクラスターへの接続をご参照ください。
      2. ユーザーデータを準備します。 ここでは、ユーザー名として Tom が使用されます。 ファイル内のすべてのemr-guestTom に、cn:EMR GUESTcn:Tom に置き換え、userPassword にパスワードを設定します。
        su knox
        cd /usr/lib/knox-current/templates  
        vi users.ldif
        重要 セキュリティのために、 LDAP にユーザーデータをエクスポートする前に、userPassword を自身のパスワードに変更することによって、users.ldif のパスワードを変更します。
      3. LDAP にエクスポートします。
        su knox
        cd /usr/lib/knox-current/templates
        sh ldap-sample-users.sh
    • LDAP サービスの使用
      1. クラスター管理ページに移動します。 cluster-topo 設定で、main.ldapRealm.userDnTemplate をユーザー DN テンプレートに、 main.ldapRealm.contextFactory.url を LDAP サーバードメイン名とポートに設定します。 設定を保存し、Knox を再起動します。
      2. 通常 LDAP サービスはクラスター内で実行されません。 パブリックネットワークで LDAP サービスにアクセスするには、ポート 10389 などのKnox ポートを有効にする必要があります。 詳細については、前述のポート 8443 を有効にする手順をご参照ください。インターネットアウトバウンド を選択します。
        重要 セキュリティのために、認証オブジェクトは Knox クラスターのパブリック IP アドレスでなければなりません。 0.0.0.0/0** は禁止されています。

Knox へのアクセス

  • E-MapReduce ショートカットリンクを使用したアクセス
    1. E-MapReduce コンソールにログインします。
    2. ターゲットクラスターの ID リンクをクリックします。
    3. 左側のナビゲーションウィンドウで、[クラスターとサービス] をクリックします。
    4. E-MapReduce サービスページで、HDFS および YARN などの関連サービスをクリックします。
    5. 右上隅の、[クイックリンク] をクリックします。
  • クラスターのパブリック IP アドレスを使用したアクセス
    1. クラスター詳細でパブリック IP アドレスを確認します。
    2. ブラウザで関連サービスの URL にアクセスします。
      • HDFS UI の URL は https://{cluster_access_ip}:8443/gateway/cluster-topo/hdfs/ です。
      • YARN UI の URL は https://{cluster_access_ip}:8443/gateway/cluster-topo/yarn/ です。
      • SparkHistory UI の URL は https://{cluster_access_ip}:8443/gateway/cluster-topo/sparkhistory/ です。
      • Ganglia UI の URL は https://{cluster_access_ip}:8443/gateway/cluster-topo/ganglia/ です。
      • Storm UI の URL は https://{cluster_access_ip}:8443/gateway/cluster-topo/storm/ です。
      • Oozie UI の URL は https://{cluster_access_ip}:8443/gateway/cluster-topo/oozie/ です。
    3. Knox サービスは自己署名証明書を使用しているため、ブラウザに "ウェブサイトは安全ではありません" と表示されます。 アクセスした IP アドレスがクラスターの IP アドレスを同じであり、ポートが 8443 であることを確認します。 [進む] > [続行] の順にクリックします。
    4. ログインダイアログボックスに LDAP に設定されているユーザー名とパスワードを入力します。

アクセスコントロールリスト

Knox では サービスレベルの認証管理が提供され、特定のユーザー、ユーザーグループ、および IP アドレスへのサービスアクセスが制限されます。 『Apache Knox 認証』をご参照ください。

    • 本シナリオでは、 YARN UI では ユーザー Tom によるアクセスのみが許可されます。
    • 手順は以下のとおりです。クラスター設定管理ページに移動します。 cluster-topo 設定で、ACL (アクセスコントロールリスト) をコード <gateway>...</gateway> ラベルの間に追加します。
      <provider>
            <role>authorization</role>
            <name>AclsAuthz</name>
            <enabled>true</enabled>
            <param>
                <name>YARNUI.acl</name>
                <value>Tom;*;*</value>
            </param>
      </provider>
  • 注記

    Knox では、HDFS ファイルの追加または削除を含むさまざまなサービスを操作するための RESTful API が提供されています。 セキュリティのために、ECS コンソールでセキュリティグループのポート 8443 を有効にするときに、認証オブジェクトが制限された IP アドレス範囲であることを確認します。 0.0.0.0/0 は禁止されています。 Knox へのアクセスには、Knox のインストールディレクトリの LDAP ユーザー名とパスワードは使用しません。