Personnalisation de l'emplacement du journal pour les fichiers journaux des étapes - 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.

Personnalisation de l'emplacement du journal pour les fichiers journaux des étapes

À partir de la version 7.11 d'Amazon EMR, vous pouvez désormais personnaliser le comportement de journalisation S3 pour chaque étape. Pour une seule étape, vous pouvez choisir un compartiment S3 unique dans lequel les journaux de l'étape sont chargés. Vous pouvez également choisir une clé KMS unique qui est utilisée pour chiffrer les journaux de l'étape au repos, sur S3. Ces options ont priorité sur tous les paramètres de journalisation à l'échelle du cluster configurés lors du lancement du cluster.

Conditions préalables

  • La journalisation du cluster doit être activée sur votre cluster. Pour plus d'informations, consultez Configurer la journalisation et le débogage du cluster Amazon EMR.

  • EC2 profil d'instance :

    • Le profil d' EC2 instance de votre cluster doit être autorisé à accéder au compartiment S3 qui sera utilisé dans la configuration de journalisation de l'étape.

    • Le profil d' EC2 instance de votre cluster doit être autorisé à accéder à la clé KMS qui sera utilisée dans la configuration de journalisation de l'étape. En outre, le profil d' EC2 instance de votre cluster doit autoriser kms:Decrypt des kms:GenerateDataKey actions.

Configuration du journal des étapes

Lorsque vous soumettez une étape à EMR, vous pouvez configurer le comportement de journalisation de l'étape via. StepMonitoringConfiguration StepMonitoringConfiguration Il contient l'MonitoringConfiguration objet S3 dans lequel vous pouvez spécifier un compartiment de journalisation S3, and/or une clé KMS pour l'étape.

L'exemple suivant montre comment personnaliser le compartiment S3 et la clé KMS d'une étape à partir d'un script python :

import boto3 emr_client = boto3.client("emr", region_name="us-east-1") # Define your step: example_step = [ { "Name": "Example Step for StepMonitoringConfiguration", "ActionOnFailure": "CONTINUE", "HadoopJarStep": { "Jar": "command-runner.jar", "Args": ["bash", "-c", "echo 1"] }, "StepMonitoringConfiguration": { "S3MonitoringConfiguration": { "LogUri": "s3://your-s3-bucket/", # Replace this with your S3 bucket "EncryptionKeyArn": "arn:aws:kms:your-kms-key-arn" # Replace this with your KMS key ARN } } } ] response = emr_client.add_job_flow_steps( JobFlowId="j-xxxxxxxxxxxxx", # Replace this with your EMR cluster ID Steps=example_step )

Considérations

  • Si votre cluster n'active pas la journalisation du cluster, les journaux d'étapes ne seront pas téléchargés vers S3 même si vous fournissez unStepMonitoringConfiguration.

  • Si votre étape exécute une application Spark, les journaux des conteneurs de l'application seront également téléchargés à l'emplacement spécifié dans leStepMonitoringConfiguration.

  • Vous êtes autorisé à spécifier un LogUri sans spécifier un EncryptionKeyArn ou vice versa. EMR utilisera par défaut le paramètre à l'échelle du cluster pour tout champ omis dans le. StepMonitoringConfiguration