Tous les produits
Search
Centre de documentation

E-MapReduce:Knox

Dernière mise à jour :Aug 09, 2026

Cette rubrique explique comment configurer Knox sur E-MapReduce pour accéder aux interfaces web de services tels que HDFS, YARN, Spark et Ganglia via le réseau public.

Prérequis

Vous avez créé un cluster E-MapReduce en sélectionnant le service Knox. Pour plus d'informations, consultez la rubrique Créer un cluster.

Remarque

Si vous n'avez pas sélectionné le service Knox lors de la création du cluster, vous pouvez l'ajouter ultérieurement. Pour plus d'informations, consultez la rubrique Ajouter des services.

Préparatifs

Configurer l'accès au groupe de sécurité

  1. Récupérez l'adresse IP publique de votre appareil actuel.

    Afin de garantir la sécurité des composants du cluster, autorisez uniquement les connexions provenant de votre adresse IP publique actuelle lorsque vous configurez les règles du groupe de sécurité. Consultez la page Adresse IP pour visualiser votre adresse IP publique actuelle.

  2. Ajoutez un port :

    Cette procédure utilise le port 8443 à titre d'exemple.

    1. Dans la console E-MapReduce, accédez à la page Basic Information de votre cluster, puis rendez-vous dans la section Security et cliquez sur le lien situé à côté de Cluster Security Group.

    2. Sur la page Security Group , sous l'onglet Inbound , cliquez sur Add Rule .

    3. Définissez le champ Authorization Object avec l'adresse IP publique obtenue à l'étape précédente et spécifiez la Port Range 8443/8443 .

    4. Cliquez sur Save .

Important
  • Pour éviter tout risque de sécurité, ne définissez pas le champ Authorization Object sur 0.0.0.0/0.

  • Si vous n'avez pas attribué d'adresse IP publique lors de la création du cluster, vous pouvez en assigner une à l'instance ECS du nœud master via la console ECS.

Configurer un utilisateur Knox

L'accès à Knox nécessite une authentification par nom d'utilisateur et mot de passe. Knox s'appuie sur LDAP pour l'authentification des utilisateurs, service fourni par Apache Directory Server au sein du cluster.

  • Méthode 1 (recommandée)

    Sur la page EMR on ECS, cliquez sur le nom de votre cluster. Accédez à l'onglet Users pour ajouter un compte utilisateur Knox. Pour plus d'informations, consultez la rubrique Gestion des utilisateurs.

  • Méthode 2 :

    1. Connectez-vous au cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.

    2. Préparez les données de l'utilisateur. L'exemple suivant concerne un utilisateur nommé Tom.

      Modifiez le fichier users.ldif .

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

      Dans ce fichier, remplacez toutes les occurrences de emr-guest par Tom , ainsi que celles de EMR GUEST par Tom , puis définissez la valeur de userPassword avec le mot de passe souhaité.

    3. Exécutez les commandes suivantes pour importer les données utilisateur dans LDAP.

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

Accéder aux interfaces web

Pour savoir comment accéder aux interfaces web, consultez la rubrique Accéder aux interfaces web des composants open source depuis la console.

FAQ

  • Q : Le composant Knox s'arrête de manière inattendue. Lors du redémarrage de Knox, le processus échoue avec l'erreur suivante : 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.
  • R : Suivez les étapes ci-dessous pour résoudre ce problème :

    1. Connectez-vous au cluster via SSH. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.

    2. Exécutez la commande suivante pour renommer le certificat expiré.

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

      Vous pouvez également déplacer le certificat expiré vers un autre répertoire.

    3. Démarrez le service Knox.

      1. Dans la console EMR, sur la page Services , localisez le service Knox, puis choisissez more > START .

      2. Dans la boîte de dialogue qui s'affiche, saisissez un motif d'exécution, puis cliquez sur OK .

      3. Dans la boîte de dialogue Confirm , cliquez sur OK .