Lancement du serveur d'historique Spark - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Lancement du serveur d'historique Spark

Vous pouvez utiliser un serveur d’historique Spark pour visualiser les journaux Spark sur votre propre infrastructure. Vous pouvez voir les mêmes visualisations dans la console AWS Glue pour les tâches AWS Glue exécutées sur des versions AWS Glue 4.0 ou ultérieures avec des journaux générés au format standard (plutôt qu’ancien). Pour de plus amples informations, veuillez consulter Surveillance des tâches à l'aide de l'interface utilisateur web Apache Spark.

Vous pouvez lancer le serveur d'historique Spark à l'aide d'un modèle AWS CloudFormation qui héberge le serveur sur une instance EC2, ou le lancer localement à l'aide de Docker.

Lancement du serveur d'historique Spark et affichage de l'interface utilisateur Spark à l'aide de AWS CloudFormation

Vous pouvez utiliser un modèle AWS CloudFormation pour démarrer le serveur d'historique Apache Spark et afficher l'interface utilisateur web Spark. Ces modèles sont des exemples que vous devez modifier pour répondre à vos besoins.

Pour démarrer le serveur d'historique Spark et afficher l'interface utilisateur Spark à l'aide d'AWS CloudFormation
  1. Choisissez l'un des boutons Launch Stack (Lancer la pile) du tableau suivant. Cela permet de lancer la pile sur la console AWS CloudFormation.

    Région Lancer
    USA Est (Ohio) Orange button labeled "Launch Stack" with an arrow icon.
    USA Est (Virginie du Nord) Orange button labeled "Launch Stack" with an arrow icon.
    USA Ouest (Californie du Nord) Orange button labeled "Launch Stack" with an arrow icon.
    USA Ouest (Oregon) Orange button labeled "Launch Stack" with an arrow icon.
    Africa (Cape Town) Orange button labeled "Launch Stack" with an arrow icon.
    Asie-Pacifique (Hong Kong) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Mumbai) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Osaka) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Seoul) Orange button labeled "Launch Stack" with an arrow icon.
    Asie-Pacifique (Singapour) Orange button labeled "Launch Stack" with an arrow icon.
    Asie-Pacifique (Sydney) Orange button labeled "Launch Stack" with an arrow icon.
    Asie-Pacifique (Tokyo) Orange button labeled "Launch Stack" with an arrow icon.
    Canada (Centre) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Francfort) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Irlande) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Londres) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Milan) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Paris) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Stockholm) Orange button labeled "Launch Stack" with an arrow icon.
    Moyen-Orient (Bahreïn) Orange button labeled "Launch Stack" with an arrow icon.
    Amérique du Sud (Sao Paulo) Orange button labeled "Launch Stack" with an arrow icon.
  2. Sur la page Specify template (Spécifier un modèle), choisissez Next (Suivant).

  3. Sur la page Specify stack details (Spécifier les détails de la pile), entrez le nom de la pile (Stack name). Saisissez des informations supplémentaires sous Paramètres.

    1. Configuration de l'interface utilisateur Spark

      Saisissez les informations suivantes :

      • IP address range (Plage d'adresses IP) – Plage d'adresses IP pouvant être utilisée pour afficher l'interface utilisateur Spark. Pour limiter l'accès à partir d'une plage d'adresses IP spécifique, vous devez utiliser une valeur personnalisée.

      • History server port (Historique du serveur) – Port de l'interface utilisateur Spark. Vous pouvez utiliser la valeur par défaut.

      • Event log directory (Répertoire des journaux d'événements) – Choisissez l'emplacement où les journaux d'événements Spark sont stockés en provenance de la tâche AWS Glue ou des points finaux de développement. Vous devez utiliser s3a:// pour le schéma de chemin des journaux d'événements.

      • Spark package location (Emplacement du package Spark) – Vous pouvez utiliser la valeur par défaut.

      • Keystore path (Chemin du KeyStore) – Chemin d'accès du magasin de clés SSL/TLS pour HTTPS. Si vous souhaitez utiliser un fichier de magasin de clés personnalisé, vous pouvez spécifier le chemin S3 s3://path_to_your_keystore_file ici. Si vous laissez ce paramètre vide, un magasin de clés auto-signé basé sur un certificat est généré et utilisé.

      • Mot de passe KeyStore — Saisissez le mot de passe du magasin de clés SSL/TLS pour HTTPS.

    2. Configuration des instances EC2

      Saisissez les informations suivantes :

      • Instance type (Type d'instance) – Type d'instance Amazon EC2 qui héberge le serveur d'historique Spark. Étant donné que ce modèle lance une instance Amazon EC2 dans votre compte, le coût d'Amazon EC2 sera facturé séparément dans votre compte.

      • Latest AMI ID (Dernier ID AMI) – ID AMI d'Amazon Linux 2 pour l'instance du serveur d'historique Spark. Vous pouvez utiliser la valeur par défaut.

      • VPC ID (ID VPC) – ID du cloud privé virtuel (VPC) pour l'instance du serveur d'historique Spark. Vous pouvez utiliser n'importe quel VPC disponible dans votre compte. L'utilisation d'un VPC par défaut avec une liste ACL réseau par défaut n'est pas recommandée. Pour plus d'informations, veuillez consulter les rubriques VPC par défaut et sous-réseaux par défaut et Créer un VPC dans le Guide de l'utilisateur Amazon VPC.

      • Subnet ID (ID de sous-réseau) – ID de l'instance du serveur d'historique Spark. Vous pouvez utiliser n'importe quel sous-réseau de votre VPC. Vous devez être en mesure d'atteindre le réseau depuis votre client vers le sous-réseau. Pour y accéder via Internet, vous devez utiliser un sous-réseau public dont la table de routage comporte la passerelle Internet.

    3. Choisissez Next (Suivant).

  4. Sur la page Configure stack options (Configurer des options de piles), pour utiliser les informations d'identification utilisateur actuelles afin de déterminer comment CloudFormation peut créer, modifier ou supprimer des ressources dans la pile, choisissez Next (Suivant). Vous pouvez également spécifier un rôle dans la section Autorisations à utiliser au lieu des autorisations utilisateur actuelles, puis choisissez Suivant.

  5. Sur la page Review (Révision), vérifiez le modèle.

    Sélectionnez Je comprends qu'AWS CloudFormation peut créer des ressources IAM, puis choisissez Créer une pile.

  6. Attendez que la pile soit créée.

  7. Ouvrez l'onglet Sorties.

    1. Copiez l'URL de SparkUiPublicUrl si vous utilisez un sous-réseau public.

    2. Copiez l'URL de SparkUiPrivateUrl si vous utilisez un sous-réseau privé.

  8. Ouvrez un navigateur web et collez-y l'URL. Cela vous permet d'accéder au serveur à l'aide de HTTPS sur le port spécifié. Votre navigateur peut ne pas reconnaître le certificat du serveur ; dans ce cas, vous devez outrepasser sa protection et continuer tout de même.

Lancement du serveur d'historique Spark et affichage de l'interface utilisateur Spark à l'aide de Docker

Si vous préférez un accès local (pour ne pas avoir d'instance EC2 pour le serveur d'historique Apache Spark), vous pouvez également utiliser Docker pour démarrer le serveur d'historique Apache Spark et afficher l'interface utilisateur Spark localement. Ce fichier Dockerfile est un exemple que vous devez modifier pour répondre à vos besoins.

Prerequisites (Prérequis)

Pour plus d'informations sur l'installation de Docker sur votre ordinateur portable, consultez la communauté Docker Engine.

Pour démarrer le serveur d'historique Spark et afficher l'interface utilisateur Spark localement à l'aide de Docker
  1. Téléchargez des fichiers depuis GitHub.

    Téléchargez les fichiers Dockerfile et pom.xml à partir des exemples de code AWS Glue.

  2. Déterminez si vous souhaitez utiliser vos informations d'identification utilisateur ou vos informations d'identification utilisateur fédéré pour accéder à AWS.

    • Pour utiliser les informations d'identification de l'utilisateur actuel pour accéder à AWS, obtenez les valeurs à utiliser pour AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY dans la commande docker run. Pour de plus amples informations, veuillez consulter Gestion des clés d’accès pour les utilisateurs IAM dans le Guide de l’utilisateur IAM.

    • Pour utiliser des utilisateurs fédérés SAML 2.0 pour accéder à AWS, obtenez les valeurs de AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, et AWS_SESSION_TOKEN Pour en savoir plus, consultez Requesting temporary security credentials (Demander d'informations d'identification temporaires de sécurité).

  3. Déterminez l'emplacement de votre répertoire de journaux d'événements, à utiliser dans la commande docker run.

  4. Créez l'image Docker à l'aide des fichiers du répertoire local, en utilisant le nom glue/sparkui et l'identification latest.

    $ docker build -t glue/sparkui:latest .
  5. Créez et démarrez le conteneur Docker.

    Dans les commandes suivantes, utilisez les valeurs obtenues précédemment aux étapes 2 et 3.

    1. Pour créer le conteneur Docker à l'aide de vos informations d'identification utilisateur, utilisez une commande similaire à ce qui suit :

      docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
    2. Pour créer le conteneur Docker à l'aide d'informations d'identification temporaires, utilisez org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider en tant que fournisseur, et fournissez les valeurs d'identification obtenues à l'étape 2. Pour de plus amples informations, veuillez consulter Utilisation des informations d'identification de séance avec TemporaryAWSCredentialsProvider dans la documentation Hadoop : Intégration à Amazon Web Services.

      docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY -Dspark.hadoop.fs.s3a.session.token=AWS_SESSION_TOKEN -Dspark.hadoop.fs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
    Note

    Ces paramètres de configuration proviennent du Hadoop-AWSModule. Il se peut que vous ayez besoin d'ajouter une configuration spécifique en fonction des cas d'utilisation. Par exemple : les utilisateurs des régions isolées devront configurer le spark.hadoop.fs.s3a.endpoint.

  6. Ouvrez http://localhost:18080 dans votre navigateur pour afficher localement l'interface utilisateur Spark.