すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Knox

最終更新日:Jun 21, 2026

このトピックでは、E-MapReduce 上で Knox を設定し、パブリックネットワーク経由で HDFS、YARN、Spark、Ganglia などのサービスの Web UI にアクセスする方法について説明します。

前提条件

Knox サービスを選択した E-MapReduce クラスターが作成済みである必要があります。 詳細については、「クラスターの作成」をご参照ください。

説明

クラスターの作成時に Knox サービスを選択しなかった場合は、追加できます。 詳細については、「サービスの追加」をご参照ください。 

事前準備

セキュリティグループアクセスの設定

  1. 現在のデバイスのパブリック IP アドレスを取得します。

    クラスターコンポーネントに安全にアクセスするには、セキュリティグループのルールを設定する際に、現在のパブリック IP アドレスからのアクセスのみを許可してください。 IP アドレス にアクセスして、現在のパブリック IP アドレスを確認してください。

  2. ポートを追加します。

    このトピックでは、ポート 8443 を例として使用します。

    1. E-MapReduce コンソールで、クラスターの [基本情報] ページの [Security] セクションに移動し、[Cluster Security Group] の横にあるリンクをクリックします。

    2. [セキュリティグループ] ページで、[受信] タブの [Add Rule] をクリックします。

    3. [ Authorization Object ] を前の手順で取得したパブリック IP アドレスに設定し、[ Port Range ] を [ 8443/8443 ] に設定します。

    4. [Save] をクリックします。

重要
  • セキュリティリスクを防ぐため、[権限付与オブジェクト] を 0.0.0.0/0 に設定しないでください。

  • クラスターの作成時にパブリック IP アドレスを割り当てなかった場合は、ECS コンソールでマスターノードの ECS インスタンスに割り当てることができます。

Knox ユーザーの設定

Knox へのアクセスには、ユーザー名とパスワードによる認証が必要です。Knox はユーザー認証に LDAP を使用します。このサービスは、クラスター内の Apache Directory Server サービスが提供します。

  • 方法 1 (推奨)

    EMR on ECS ページで、クラスターの名前をクリックします。 [Users] タブをクリックして Knox ユーザーアカウントを追加します。 詳細については、「ユーザー管理」をご参照ください。

  • 方法 2:

    1. SSH でクラスターに接続します。 詳細については、「クラスターへのログイン」をご参照ください。

    2. ユーザーデータを準備します。 次の例では、Taro という名前のユーザーを使用します。

      users.ldif ファイルを編集します。

      su knox
      vim /opt/apps/KNOX/knox-current/templates/users.ldif

      ファイル内で、emr-guest をすべて Taro に、EMR GUEST をすべて Taro に置き換え、userPassword の値を任意のパスワードに設定します。

    3. 次のコマンドを実行して、ユーザーデータを LDAP にインポートします。

      cd /opt/apps/KNOX/knox-current/templates
      sh ldap-sample-users.sh

Web UI へのアクセス

Web UI へのアクセス方法の詳細については、「コンソールからのオープンソースコンポーネントの Web UI へのアクセス」をご参照ください。

よくある質問

  • Q: Knox コンポーネントが予期せず停止します。 Knox を起動しようとすると、プロセスが失敗し、Failed to start gateway: org.apache.knox.gateway.services.ServiceLifecycleException: Gateway SSL Certificate is Expired というエラーが表示されます。

    s/ecm/sxxx.0.3/bin/.. as GATEWAY_HOME via system property.
    2021-08-03 16:37:35,794 INFO  knox.gateway (GatewayConfigImpl.java:init(346)) - Cookie scoping feature enabled: false
    2021-08-03 16:37:36,091 WARN  knox.gateway (RemoteAliasService.java:init(448)) - There is no registry client defined for remote configuration monitoring.
    2021-08-03 16:37:36,091 INFO  knox.gateway (RemoteAliasService.java:start(485)) - Remote Alias Service enabled
    2021-08-03 16:37:36,102 INFO  knox.gateway (JettySSLService.java:init(96)) - Credential store for the gateway instance found - no need to create one.
    2021-08-03 16:37:36,120 INFO  knox.gateway (JettySSLService.java:init(118)) - Keystore for the gateway instance found - no need to create one.
    2021-08-03 16:37:36,124 INFO  knox.gateway (JettySSLService.java:logAndValidateCertificate(148)) - The Gateway SSL certificate is issued to hostname: localhost.
    2021-08-03 16:37:36,125 INFO  knox.gateway (JettySSLService.java:logAndValidateCertificate(151)) - The Gateway SSL certificate is valid between: 3/9/20 4:12 PM and 3/9/21 4:12 PM.
    2021-08-03 16:37:36,136 FATAL knox.gateway (GatewayServer.java:main(162)) - Failed to start gateway: org.apache.knox.gateway.services.ServiceLifecycleException: Gateway SSL Certificate is Expired. Server will not start.
  • A: この問題を解決するには、次の手順に従ってください。

    1. SSH でクラスターにログインします。 詳細については、「クラスターへのログイン」をご参照ください。

    2. 次のコマンドを実行して、期限切れの証明書の名前を変更します。

      sudo mv /opt/apps/KNOX/knox-current/data/security/keystores/gateway.jks /opt/apps/KNOX/knox-current/data/security/keystores/bak_gateway.jks
      説明

      期限切れの証明書を別のディレクトリに移動することもできます。

    3. Knox サービスを開始します。

      1. EMR コンソールの [Services] ページで、Knox サービスの more > START を選択します。

      2. 表示されるダイアログボックスで、実行理由を入力して [OK] をクリックします。

      3. [Confirm] ダイアログボックスで、[OK] をクリックします。