Tutoriel : Premiers pas avec Amazon EMR - Amazon EMR

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.

Tutoriel : Premiers pas avec Amazon EMR

Parcourez un flux de travail pour configurer rapidement un EMR cluster Amazon et exécuter une application Spark.

Configuration de votre EMR cluster Amazon

Avec Amazon, EMR vous pouvez configurer un cluster pour traiter et analyser les données à l'aide de frameworks Big Data en quelques minutes seulement. Ce didacticiel explique comment lancer un exemple de cluster à l'aide de Spark et comment exécuter un PySpark script simple stocké dans un compartiment Amazon S3. Il couvre les EMR tâches essentielles d'Amazon dans trois catégories principales de flux de travail : planifier et configurer, gérer et nettoyer.

Vous trouverez des liens vers des sujets plus détaillés au fur et à mesure que vous avancerez dans le didacticiel, ainsi que des idées d'étapes supplémentaires dans la section Étapes suivantes. Si vous avez des questions ou si vous êtes bloqué, contactez l'EMRéquipe Amazon sur notre forum de discussion.

Schéma de flux de travail pour Amazon EMR qui décrit les trois principales catégories de flux de travail que sont la planification et la configuration, la gestion et le nettoyage.
Prérequis
Coût
  • L’exemple de cluster que vous créez s’exécute dans un environnement en direct. Le cluster enregistre des frais minimes. Pour éviter des frais supplémentaires, assurez-vous d'effectuer les tâches de nettoyage de la dernière étape de ce didacticiel. Les frais sont calculés au tarif par seconde conformément aux EMR tarifs Amazon. Les frais varient également selon la région. Pour plus d'informations, consultez les EMRtarifs Amazon.

  • Des frais minimes pourraient s'accumuler pour les petits fichiers que vous stockez dans Amazon S3. Certains ou tous les frais d'Amazon S3 peuvent être annulés si vous respectez les limites d'utilisation du niveau AWS gratuit. Pour plus d'informations, consultez la rubrique Tarification Amazon S3 et Niveau gratuit AWS.

Étape 1 : Configuration des ressources de données et lancement d'un EMR cluster Amazon

Préparer le stockage pour Amazon EMR

Lorsque vous utilisez AmazonEMR, vous pouvez choisir parmi différents systèmes de fichiers pour stocker les données d'entrée, les données de sortie et les fichiers journaux. Dans ce didacticiel, vous EMRFS stockez des données dans un compartiment S3. EMRFSest une implémentation du système de fichiers Hadoop qui vous permet de lire et d'écrire des fichiers normaux sur Amazon S3. Pour de plus amples informations, veuillez consulter Utilisation des systèmes de stockage et de fichiers avec Amazon EMR.

Pour créer un compartiment pour ce didacticiel, suivez les instructions de la rubrique Comment créer un compartiment S3 ? dans le Guide de l'utilisateur de la console Amazon Simple Storage Service. Créez le compartiment dans la même AWS région où vous prévoyez de lancer votre EMR cluster Amazon. Par exemple, USA Ouest (Oregon) us-west-2.

Les compartiments et dossiers que vous utilisez avec Amazon EMR présentent les limites suivantes :

  • Les noms peuvent être composés de lettres minuscules, de chiffres, de points (.) et de traits d'union (-).

  • Les noms ne peuvent pas se terminer par des chiffres.

  • Le nom d'un compartiment doit être unique pour tous les comptes AWS .

  • Le dossier de sortie doit être vide.

Préparer une application avec des données d'entrée pour Amazon EMR

La méthode la plus courante pour préparer une demande pour Amazon EMR consiste à télécharger l'application et ses données d'entrée sur Amazon S3. Ensuite, lorsque vous soumettez du travail à votre cluster, vous indiquez les emplacements Amazon S3 pour votre script et vos données.

Au cours de cette étape, vous chargez un exemple de PySpark script dans votre compartiment Amazon S3. Nous vous avons fourni un PySpark script que vous pouvez utiliser. Le script traite les données d'inspection des établissements alimentaires et renvoie un fichier de résultats dans votre compartiment S3. Le fichier des résultats répertorie les dix établissements ayant enregistré le plus grand nombre d'infractions de type « rouge ».

Vous chargez également des exemples de données d'entrée sur Amazon S3 pour que le PySpark script les traite. Les données d'entrée sont une version modifiée des résultats des inspections effectuées par le ministère de la Santé du comté de King, Washington, entre 2006 et 2020. Pour plus d'informations, consultez la rubrique Données ouvertes du comté de King : données sur l'inspection des établissements alimentaires. Voici des exemples de lignes du jeu de données.

name, inspection_result, inspection_closed_business, violation_type, violation_points 100 LB CLAM, Unsatisfactory, FALSE, BLUE, 5 100 PERCENT NUTRICION, Unsatisfactory, FALSE, BLUE, 5 7-ELEVEN #2361-39423A, Complete, FALSE, , 0
Pour préparer l'exemple de PySpark script pour EMR
  1. Copiez l'exemple de code ci-dessous dans un nouveau fichier dans l'éditeur de votre choix.

    import argparse from pyspark.sql import SparkSession def calculate_red_violations(data_source, output_uri): """ Processes sample food establishment inspection data and queries the data to find the top 10 establishments with the most Red violations from 2006 to 2020. :param data_source: The URI of your food establishment data CSV, such as 's3://amzn-s3-demo-bucket/food-establishment-data.csv'. :param output_uri: The URI where output is written, such as 's3://amzn-s3-demo-bucket/restaurant_violation_results'. """ with SparkSession.builder.appName("Calculate Red Health Violations").getOrCreate() as spark: # Load the restaurant violation CSV data if data_source is not None: restaurants_df = spark.read.option("header", "true").csv(data_source) # Create an in-memory DataFrame to query restaurants_df.createOrReplaceTempView("restaurant_violations") # Create a DataFrame of the top 10 restaurants with the most Red violations top_red_violation_restaurants = spark.sql("""SELECT name, count(*) AS total_red_violations FROM restaurant_violations WHERE violation_type = 'RED' GROUP BY name ORDER BY total_red_violations DESC LIMIT 10""") # Write the results to the specified output URI top_red_violation_restaurants.write.option("header", "true").mode("overwrite").csv(output_uri) if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument( '--data_source', help="The URI for you CSV restaurant data, like an S3 bucket location.") parser.add_argument( '--output_uri', help="The URI where output is saved, like an S3 bucket location.") args = parser.parse_args() calculate_red_violations(args.data_source, args.output_uri)
  2. Enregistrez le fichier sous le nom health_violations.py.

  3. Chargez health_violations.py sur Amazon S3 dans le compartiment que vous avez créé pour ce didacticiel. Pour obtenir des instructions, consultez la rubrique Chargement d'un objet dans un compartiment dans le Guide de démarrage Amazon Simple Storage Service.

Pour préparer les échantillons de données d'entrée pour EMR
  1. Téléchargez le fichier zip food_establishment_data.zip.

  2. Décompressez et enregistrez food_establishment_data.zip sous le nom food_establishment_data.csv sur votre machine.

  3. Téléchargez le CSV fichier dans le compartiment S3 que vous avez créé pour ce didacticiel. Pour obtenir des instructions, consultez la rubrique Chargement d'un objet dans un compartiment dans le Guide de démarrage Amazon Simple Storage Service.

Pour plus d'informations sur la configuration des données pourEMR, consultezPréparer les données d'entrée pour le traitement avec Amazon EMR.

Lancer un EMR cluster Amazon

Après avoir préparé un emplacement de stockage et votre application, vous pouvez lancer un exemple de EMR cluster Amazon. Au cours de cette étape, vous lancez un cluster Apache Spark à l'aide de la dernière EMRversion d'Amazon.

Console
Pour lancer un cluster avec Spark installé avec la console
  1. Connectez-vous au et ouvrez AWS Management Console la EMR console Amazon à l'adresse https://console.aws.amazon.com/emr.

  2. Sous EMREC2Activé dans le volet de navigation de gauche, choisissez Clusters, puis Create cluster.

  3. Sur la page Créer un cluster, notez les valeurs par défaut pour la version, le type d'instance, le nombre d'instances et les autorisations. Ces champs sont automatiquement renseignés avec des valeurs qui fonctionnent pour les clusters à usage général.

  4. Dans le champ Nom du cluster, entrez un nom de cluster unique pour vous aider à identifier votre cluster, par exempleMy first cluster. Le nom de votre cluster ne peut pas contenir les caractères <, >, $, | ou `(backtick).

  5. Sous Applications, choisissez l'option Spark pour installer Spark sur votre cluster.

    Note

    Choisissez les applications que vous souhaitez installer sur votre EMR cluster Amazon avant de le lancer. Il est impossible d'ajouter ou de supprimer des applications d'un cluster après son lancement.

  6. Sous Journaux du cluster, cochez la case Publier les journaux spécifiques au cluster sur Amazon S3. Remplacez la valeur de l'emplacement Amazon S3 par le compartiment Amazon S3 que vous avez créé, suivi de /logs. Par exemple, s3://amzn-s3-demo-bucket/logs. L'ajout /logs crée un nouveau dossier appelé « logs » dans votre compartiment, dans lequel Amazon EMR peut copier les fichiers journaux de votre cluster.

  7. Sous Configuration de sécurité et autorisations, choisissez votre paire de EC2 clés. Dans la même section, sélectionnez le menu EMR déroulant Service role for Amazon et choisissez EMR_ DefaultRole. Sélectionnez ensuite le menu déroulant du profil du IAM rôle par instance et choisissez EMR_ EC2 _ DefaultRole.

  8. Choisissez Créer un cluster pour lancer le cluster et ouvrir la page des détails du cluster.

  9. Trouvez le statut du cluster à côté du nom du cluster. Le statut passe de Starting à Running à Waiting à mesure qu'Amazon EMR approvisionne le cluster. Vous devrez peut-être choisir l'icône d'actualisation sur la droite ou actualiser votre navigateur pour voir les mises à jour de l'état.

L'état de votre cluster passe à En attente lorsque le cluster est opérationnel et prêt à accepter du travail. Pour plus d'informations sur la lecture d'un résumé de cluster, consultez Afficher le statut et les détails du EMR cluster Amazon. Pour plus d'informations sur l'état du cluster, consultez Présentation du cycle de vie du cluster.

CLI
Pour lancer un cluster sur lequel Spark est installé avec AWS CLI
  1. Créez des rôles IAM par défaut que vous pouvez ensuite utiliser pour créer votre cluster à l'aide de la commande suivante.

    aws emr create-default-roles

    Pour plus d'informations sur create-default-roles, consultez la rubrique Référence des commandes de la AWS CLI.

  2. Créez un cluster Spark à l'aide de la commande suivante. Entrez un nom pour votre cluster avec l'--nameoption, puis spécifiez le nom de votre paire de EC2 clés avec l'--ec2-attributesoption.

    aws emr create-cluster \ --name "<My First EMR Cluster>" \ --release-label <emr-5.36.2> \ --applications Name=Spark \ --ec2-attributes KeyName=<myEMRKeyPairName> \ --instance-type m5.xlarge \ --instance-count 3 \ --use-default-roles

    Notez les autres valeurs requises pour --instance-type, --instance-count et --use-default-roles. Ces valeurs ont été choisies pour les clusters à usage général. Pour plus d'informations sur create-cluster, consultez la rubrique Référence des commandes de la AWS CLI.

    Note

    Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

    Vous devriez voir une sortie semblable à la suivante. Le résultat généré indique le ClusterId et le ClusterArn de votre nouveau cluster. Notez votre ClusterId. Vous utilisez le ClusterId pour vérifier l'état du cluster et pour soumettre des travaux.

    { "ClusterId": "myClusterId", "ClusterArn": "myClusterArn" }
  3. Vérifiez l'état de votre cluster à l'aide de la commande suivante.

    aws emr describe-cluster --cluster-id <myClusterId>

    Vous devriez voir un résultat comme le suivant avec l'objet Status de votre nouveau cluster.

    { "Cluster": { "Id": "myClusterId", "Name": "My First EMR Cluster", "Status": { "State": "STARTING", "StateChangeReason": { "Message": "Configuring cluster software" } } } }

    La State valeur passe de STARTING à RUNNING à WAITING lorsqu'Amazon EMR approvisionne le cluster.

L'état du cluster passe à WAITING lorsque le cluster est opérationnel et prêt à accepter du travail. Pour plus d'informations sur l'état du cluster, consultez Présentation du cycle de vie du cluster.

Étape 2 : Soumettre le travail à votre EMR cluster Amazon

Soumettre un travail et consulter les résultats

Après avoir lancé un cluster, vous pouvez soumettre du travail au cluster en cours d'exécution pour traiter et analyser des données. Vous soumettez le travail à un EMR cluster Amazon en tant qu'étape. L'étape est une unité de travail composée d'une ou plusieurs actions. Par exemple, vous pouvez soumettre une étape pour calculer des valeurs ou pour transférer et traiter des données. Vous pouvez soumettre des étapes lors de la création d'un cluster ou à un cluster en cours d'exécution. Dans cette partie du didacticiel, vous soumettez health_violations.py en tant qu'étape à votre cluster en cours d'exécution. Pour en savoir plus sur les étapes, consultez Soumettre un travail à un EMR cluster Amazon.

Console
Pour soumettre une application Spark en tant qu'étape par le biais de la console
  1. Connectez-vous au et ouvrez AWS Management Console la EMR console Amazon à l'adresse https://console.aws.amazon.com/emr.

  2. Sous EMREC2Activé dans le volet de navigation de gauche, choisissez Clusters, puis sélectionnez le cluster dans lequel vous souhaitez soumettre le travail. L'état du cluster doit être En attente.

  3. Sélectionnez l'onglet Étapes, puis sélectionnez Ajouter une étape.

  4. Configurez l'étape en fonction des consignes suivantes :

    • Pour Type, choisissez Application Spark. Vous devriez voir des champs supplémentaires pour le mode de déploiement, l'emplacement de l'application et les options Spark-submit.

    • Dans le champ Nom, saisissez un nouveau nom. Si vous avez de nombreuses étapes dans un cluster, le fait de nommer chaque étape vous aide à en garder la trace.

    • Pour le mode de déploiement, laissez la valeur par défaut Mode cluster. Pour plus d'informations sur les modes de déploiement de Spark, consultez la rubrique Présentation du mode cluster dans la documentation Apache Spark.

    • Pour Emplacement de l'application, entrez l'emplacement de votre health_violations.py script dans Amazon S3, par exemples3://amzn-s3-demo-bucket/health_violations.py.

    • Laissez le champ des options Spark-submit vide. Pour plus d'informations sur les options spark-submit, consultez la rubrique Lancement d'applications à l'aide de spark-submit.

    • Dans le champ Arguments, saisissez les arguments et les valeurs suivants :

      --data_source s3://amzn-s3-demo-bucket/food_establishment_data.csv --output_uri s3://amzn-s3-demo-bucket/myOutputFolder

      s3://amzn-s3-demo-bucket/food_establishment_data.csvRemplacez-le par le compartiment S3 URI contenant les données d'entrée que vous avez préparéesPréparer une application avec des données d'entrée pour Amazon EMR.

      Remplacez-le amzn-s3-demo-bucket par le nom du compartiment que vous avez créé pour ce didacticiel et remplacez-le myOutputFolder par le nom du dossier de sortie de votre cluster.

    • Pour l'action en cas d'échec de l'étape, acceptez l'option par défaut Continuer. Ainsi, en cas d'échec de l'étape, le cluster continue de fonctionner.

  5. Choisissez Ajouter pour soumettre l'étape. L'étape devrait apparaître dans la console avec l'état En attente.

  6. Surveillez l'état de l'étape. Il devrait passer de En attente à En cours d'exécution, puis à Terminé. Pour actualiser l'état dans la console, cliquez sur l'icône d'actualisation à droite de Filtre. L'exécution du script prend environ une minute. Lorsque l'état devient Terminé, l'étape s'est achevée avec succès.

CLI
Pour soumettre une application Spark en tant qu'étape par le AWS CLI
  1. Assurez-vous d'avoir le ClusterId du cluster que vous avez lancé dans Lancer un EMR cluster Amazon. Vous pouvez également récupérer l'identifiant de votre cluster à l'aide de la commande suivante.

    aws emr list-clusters --cluster-states WAITING
  2. Soumettez health_violations.py en tant qu'étape à l'aide de la commande add-steps et de votre ClusterId.

    • Vous pouvez donner un nom à votre étape en remplaçant"My Spark Application". Dans le Args tableau, remplacez s3://amzn-s3-demo-bucket/health_violations.py par l'emplacement de votre health_violations.py application.

    • Remplacez s3://amzn-s3-demo-bucket/food_establishment_data.csv par l'emplacement S3 de votre food_establishment_data.csv ensemble de données.

    • s3://amzn-s3-demo-bucket/MyOutputFolderRemplacez-le par le chemin S3 du compartiment que vous avez désigné et le nom du dossier de sortie de votre cluster.

    • ActionOnFailure=CONTINUE signifie que le cluster continue à s'exécuter si l'étape échoue.

    aws emr add-steps \ --cluster-id <myClusterId> \ --steps Type=Spark,Name="<My Spark Application>",ActionOnFailure=CONTINUE,Args=[<s3://amzn-s3-demo-bucket/health_violations.py>,--data_source,<s3://amzn-s3-demo-bucket/food_establishment_data.csv>,--output_uri,<s3://amzn-s3-demo-bucket/MyOutputFolder>]

    Pour plus d'informations sur la soumission d'étapes à l'aide duCLI, consultez la référence des AWS CLI commandes.

    Une fois que vous avez soumis l'étape, vous devriez voir un résultat comme le suivant, avec une liste de StepIds. Puisque vous n'avez soumis qu'une seule étape, vous ne verrez qu'un seul identifiant dans la liste. Copiez votre identifiant d'étape. Utilisez votre identifiant d'étape pour vérifier l'état de l'étape.

    { "StepIds": [ "s-1XXXXXXXXXXA" ] }
  3. Vérifiez l'état de votre étape à l'aide de la commande describe-step.

    aws emr describe-step --cluster-id <myClusterId> --step-id <s-1XXXXXXXXXXA>

    Vous devriez voir un résultat comme le suivant, avec des informations sur votre étape.

    { "Step": { "Id": "s-1XXXXXXXXXXA", "Name": "My Spark Application", "Config": { "Jar": "command-runner.jar", "Properties": {}, "Args": [ "spark-submit", "s3://amzn-s3-demo-bucket/health_violations.py", "--data_source", "s3://amzn-s3-demo-bucket/food_establishment_data.csv", "--output_uri", "s3://amzn-s3-demo-bucket/myOutputFolder" ] }, "ActionOnFailure": "CONTINUE", "Status": { "State": "COMPLETED" } } }

    La valeur State de l'étape passe de PENDING à RUNNING, puis à COMPLETED, au fur et à mesure que l'étape s'exécute. L'exécution de l'étape prend environ une minute, il se peut donc que vous deviez vérifier l'état à plusieurs reprises.

Vous saurez que l'étape s'est terminée correctement lorsque le State passe à COMPLETED.

Pour plus d'informations sur le cycle de vie des étapes, consultez Exécuter des étapes pour traiter des données.

Affichage des résultats

Une fois qu'une étape s'est exécutée avec succès, vous pouvez consulter ses résultats dans votre dossier de sortie Amazon S3.

Affichage des résultats de health_violations.py
  1. Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Choisissez le nom du compartiment, puis le dossier de sortie que vous avez spécifié lorsque vous avez soumis l'étape. Par exemple, amzn-s3-demo-bucket puismyOutputFolder.

  3. Vérifiez que les éléments suivants apparaissent dans votre dossier de sortie :

    • Un objet de petite taille appelé _SUCCESS.

    • Un CSV fichier commençant par le préfixe part- qui contient vos résultats.

  4. Choisissez l'objet contenant vos résultats, puis choisissez Télécharger pour enregistrer les résultats dans votre système de fichiers local.

  5. Ouvrez le résultats dans l'éditeur de votre choix. Le fichier de sortie répertorie les dix établissements ayant enregistré le plus grand nombre d'infractions rouges. Le fichier de sortie indique également le nombre total d'infractions rouges pour chaque établissement.

    Voici un exemple de résultats health_violations.py.

    name, total_red_violations SUBWAY, 322 T-MOBILE PARK, 315 WHOLE FOODS MARKET, 299 PCC COMMUNITY MARKETS, 251 TACO TIME, 240 MCDONALD'S, 177 THAI GINGER, 153 SAFEWAY INC #1508, 143 TAQUERIA EL RINCONSITO, 134 HIMITSU TERIYAKI, 128

Pour plus d'informations sur la sortie EMR du cluster Amazon, consultezConfigurer un emplacement pour la sortie EMR du cluster Amazon.

Lorsque vous utilisez AmazonEMR, vous souhaiterez peut-être vous connecter à un cluster en cours d'exécution pour lire les fichiers journaux, déboguer le cluster ou utiliser des CLI outils tels que le shell Spark. Amazon vous EMR permet de vous connecter à un cluster à l'aide du protocole Secure Shell (SSH). Cette section explique comment configurerSSH, se connecter à votre cluster et afficher les fichiers journaux pour Spark. Pour plus d'informations sur la connexion à un cluster, consultez Authentifiez-vous auprès des nœuds EMR du cluster Amazon.

Autoriser SSH les connexions à votre cluster

Avant de vous connecter à votre cluster, vous devez modifier les groupes de sécurité de celui-ci pour autoriser les SSH connexions entrantes. Les groupes EC2 de sécurité Amazon agissent comme des pare-feux virtuels pour contrôler le trafic entrant et sortant vers votre cluster. Lorsque vous avez créé votre cluster pour ce didacticiel, Amazon EMR a créé les groupes de sécurité suivants en votre nom :

ElasticMapReduce-maître

Le groupe de sécurité EMR géré par Amazon par défaut associé au nœud principal. Dans un EMR cluster Amazon, le nœud principal est une EC2 instance Amazon qui gère le cluster.

ElasticMapReduce-esclave

Groupe de sécurité par défaut associé aux nœuds principaux et aux nœuds de tâches.

Console
Pour autoriser SSH l'accès à des sources fiables pour le groupe de sécurité principal avec la console

Pour modifier vos groupes de sécurité, vous devez être autorisé à gérer les groupes de sécurité VPC auxquels appartient le cluster. Pour plus d'informations, consultez les sections Modification des autorisations d'un utilisateur et Exemple de politique permettant de gérer les groupes EC2 de sécurité dans le Guide de IAM l'utilisateur.

  1. Connectez-vous au et ouvrez AWS Management Console la EMR console Amazon à l'adresse https://console.aws.amazon.com/emr.

  2. Sous EMREC2Activé dans le volet de navigation de gauche, choisissez Clusters, puis choisissez le cluster que vous souhaitez mettre à jour. La page de détails du cluster s'ouvre. L'onglet Propriétés de cette page devrait être présélectionné.

  3. Sous Réseau, dans l'onglet Propriétés, sélectionnez la flèche à côté des groupes EC2 de sécurité (pare-feu) pour développer cette section. Sous Nœud primaire, sélectionnez le lien du groupe de sécurité. Lorsque vous avez effectué les étapes suivantes, vous pouvez éventuellement revenir à cette étape, choisir les nœuds principaux et les nœuds de tâches, puis répéter les étapes suivantes pour autoriser le SSH client à accéder aux nœuds principaux et aux nœuds de tâches.

  4. Ceci ouvre la console EC2. Sélectionnez l'onglet Règles entrantes, puis Modifier les règles entrantes.

  5. Vérifiez s'il existe une règle entrante qui autorise l'accès public avec les paramètres suivants. Si elle existe, choisissez Supprimer pour la supprimer.

    • Type

      SSH

    • Port

      22

    • Source

      Personnalisé 0.0.0.0/0

    Avertissement

    Avant décembre 2020, le groupe de sécurité ElasticMapReduce -master disposait d'une règle préconfigurée pour autoriser le trafic entrant sur le port 22 en provenance de toutes les sources. Cette règle a été créée pour simplifier SSH les connexions initiales au nœud principal. Nous vous recommandons vivement de supprimer cette règle d'entrée et de limiter le trafic aux sources fiables.

  6. Faites défiler la liste des règles jusqu'en bas et sélectionnez Ajouter une règle.

  7. Pour Type, sélectionnez SSH. La sélection entre SSH automatiquement TCPpour le protocole et 22 pour la plage de ports.

  8. Pour source, sélectionnez Mon adresse IP pour ajouter automatiquement votre adresse IP en tant qu'adresse source. Vous pouvez également ajouter une plage d'adresses IP de clients fiables personnalisées ou créer des règles supplémentaires pour d'autres clients. De nombreux environnements réseau allouent des adresses IP de manière dynamique. Il se peut donc que vous deviez mettre à jour vos adresses IP pour les clients fiables à l'avenir.

  9. Choisissez Save (Enregistrer).

  10. Vous pouvez éventuellement sélectionner les nœuds principaux et les nœuds de tâches dans la liste et répéter les étapes ci-dessus pour autoriser le SSH client à accéder aux nœuds principaux et aux nœuds de tâches.

Connectez-vous à votre cluster à l'aide du AWS CLI

Quel que soit votre système d'exploitation, vous pouvez créer une SSH connexion à votre cluster à l'aide du AWS CLI.

Pour vous connecter à votre cluster et consulter les fichiers journaux à l'aide du AWS CLI
  1. Utilisez la commande suivante pour ouvrir une SSH connexion à votre cluster. <mykeypair.key>Remplacez-le par le chemin complet et le nom de fichier de votre fichier de paires de clés. Par exemple, C:\Users\<username>\.ssh\mykeypair.pem.

    aws emr ssh --cluster-id <j-2AL4XXXXXX5T9> --key-pair-file <~/mykeypair.key>
  2. Naviguez vers /mnt/var/log/spark pour accéder aux journaux Spark sur le nœud principal de votre cluster. Affichez ensuite les fichiers qui se trouvent à cet emplacement. Pour obtenir la liste des fichiers journaux supplémentaires sur le nœud principal, consultez Affichage des fichiers journaux sur le nœud primaire.

    cd /mnt/var/log/spark ls

Amazon EMR on EC2 est également un type de calcul pris en charge pour Amazon SageMaker AI Unified Studio. Reportez-vous à Managing Amazon EMR EC2 pour savoir comment utiliser et gérer EMR les EC2 ressources dans Amazon SageMaker AI Unified Studio.

Étape 3 : Nettoyez vos EMR ressources Amazon

Arrêt de votre cluster

Maintenant que vous avez soumis du travail à votre cluster et que vous avez consulté les résultats de votre PySpark application, vous pouvez mettre fin au cluster. La résiliation d'un cluster met fin à tous les EMR frais Amazon et EC2 instances Amazon associés au cluster.

Lorsque vous mettez fin à un cluster, Amazon EMR conserve gratuitement les métadonnées relatives au cluster pendant deux mois. Les métadonnées archivées vous permettent de cloner le cluster pour une nouvelle tâche ou de retenir la configuration du cluster à des fins de référence. Les métadonnées n'incluent pas les données que le cluster écrit dans S3, ni les données stockées dans HDFS le cluster.

Note

La EMR console Amazon ne vous permet pas de supprimer un cluster de la vue de liste une fois que vous avez résilié le cluster. Un cluster résilié disparaît de la console lorsque Amazon EMR efface ses métadonnées.

Console
Pour terminer le cluster à l'aide de la console
  1. Connectez-vous au et ouvrez AWS Management Console la EMR console Amazon à l'adresse https://console.aws.amazon.com/emr.

  2. Choisissez Clusters, puis sélectionnez le cluster que vous voulez arrêter.

  3. Dans le menu déroulant Actions, choisissez Arrêter le cluster.

  4. Dans la boîte de dialogue, choisissez Arrêter. Selon la configuration du cluster, l'arrêt peut prendre entre 5 à 10 minutes. Pour plus d'informations sur la façon de créer EMR des clusters Amazon, consultezMettre fin à un EMR cluster Amazon en état de démarrage, en cours d'exécution ou en attente.

CLI
Pour terminer le cluster à l'aide du AWS CLI
  1. Lancez le processus d'arrêt du cluster à l'aide de la commande suivante. Remplacez <myClusterId> par l'ID de votre cluster d'échantillons. La commande ne renvoie pas de résultat.

    aws emr terminate-clusters --cluster-ids <myClusterId>
  2. Pour vérifier que le processus d'arrêt du cluster est en cours, vérifiez l'état du cluster à l'aide de la commande suivante.

    aws emr describe-cluster --cluster-id <myClusterId>

    Voici un exemple de sortie au JSON format. Le Status du cluster doit passer de TERMINATING à TERMINATED. Selon la configuration de votre cluster, l'arrêt peut prendre de 5 à 10 minutes. Pour plus d'informations sur la résiliation d'un EMR cluster Amazon, consultezMettre fin à un EMR cluster Amazon en état de démarrage, en cours d'exécution ou en attente.

    { "Cluster": { "Id": "j-xxxxxxxxxxxxx", "Name": "My Cluster Name", "Status": { "State": "TERMINATED", "StateChangeReason": { "Code": "USER_REQUEST", "Message": "Terminated by user request" } } } }

Suppression des ressources S3

Pour éviter des frais supplémentaires, vous devez supprimer votre compartiment Amazon S3. La suppression du compartiment entraîne la suppression de toutes les ressources Amazon S3 pour ce didacticiel. Votre compartiment doit contenir :

  • Le PySpark script

  • Le jeu de données d'entrée

  • Votre dossier de résultats de sortie

  • Votre dossier de fichiers journaux

Vous devrez peut-être prendre des mesures supplémentaires pour supprimer les fichiers stockés si vous avez enregistré votre PySpark script ou votre sortie dans un autre emplacement.

Note

Votre cluster doit être arrêté avant que vous ne supprimiez votre compartiment. Sinon, vous risquez de ne pas être autorisé à vider le compartiment.

Pour supprimer votre compartiment, suivez les instructions de la rubrique Comment supprimer un compartiment S3 ? dans le Guide de l'utilisateur Amazon Simple Storage Service.

Étapes suivantes

Vous venez de lancer votre premier EMR cluster Amazon du début à la fin. Vous avez également effectué des EMR tâches essentielles telles que la préparation et la soumission de demandes de Big Data, l'affichage des résultats et la fermeture d'un cluster.

Consultez les rubriques suivantes pour en savoir plus sur la manière dont vous pouvez personnaliser votre EMR flux de travail Amazon.

Découvrez les applications Big Data pour Amazon EMR

Découvrez et comparez les applications Big Data que vous pouvez installer sur un cluster dans le Amazon EMR Release Guide. Le guide de publication détaille chaque EMR version et inclut des conseils pour utiliser des frameworks tels que Spark et Hadoop sur Amazon. EMR

Planification du matériel, de la mise en réseau et de la sécurité du cluster

Dans ce didacticiel, vous avez créé un EMR cluster simple sans configurer d'options avancées. Les options avancées vous permettent de spécifier les types d'EC2instances Amazon, le réseau de clusters et la sécurité du cluster. Pour plus d'informations sur la planification et le lancement d'un cluster répondant à vos besoins, consultez Planifier, configurer et lancer des EMR clusters Amazon et Sécurité sur Amazon EMR.

Gestion des clusters

Approfondissez l'utilisation de clusters en cours d'exécution dans Gérer les EMR clusters Amazon. Pour gérer un cluster, vous pouvez vous connecter au cluster, effectuer les étapes de débogage et suivre les activités et l'état du cluster. Vous pouvez également ajuster les ressources du cluster en fonction des demandes de charge de travail grâce à un dimensionnement EMR géré.

Utilisation d'une interface différente

Outre la EMR console Amazon, vous pouvez gérer Amazon à EMR l'aide du AWS Command Line Interface service API Web ou de l'un des nombreux services pris en charge AWS SDKs. Pour de plus amples informations, veuillez consulter Interfaces de gestion.

Vous pouvez également interagir avec les applications installées sur les EMR clusters Amazon de nombreuses manières. Certaines applications, comme Apache Hadoop, publient des interfaces web que vous pouvez consulter. Pour de plus amples informations, veuillez consulter Afficher les interfaces Web hébergées sur des EMR clusters Amazon.

Parcourez le blog EMR technique

Pour des exemples de présentations et des discussions techniques approfondies sur les nouvelles EMR fonctionnalités d'Amazon, consultez le blog consacré aux AWS mégadonnées.