Personalizzazione della posizione dei log per i file di log degli step - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Personalizzazione della posizione dei log per i file di log degli step

A partire dalla versione 7.11 di Amazon EMR, ora puoi personalizzare il comportamento di registrazione di S3 per passaggi in base ai singoli passaggi. Per un singolo passaggio, puoi scegliere un bucket S3 unico in cui caricare i log della fase. Puoi anche scegliere una chiave KMS unica che viene utilizzata per crittografare i log del passaggio a riposo, su S3. Queste opzioni hanno la precedenza su qualsiasi impostazione di registrazione a livello di cluster configurata all'avvio del cluster.

Prerequisiti

  • Il cluster dovrebbe avere la registrazione del cluster abilitata. Per ulteriori informazioni, consulta Configurare la registrazione e il debug del cluster Amazon EMR.

  • EC2 profilo dell'istanza:

    • Il profilo dell' EC2 istanza del cluster dovrebbe avere la possibilità di accedere al bucket S3 che verrà utilizzato nella configurazione di registrazione della fase.

    • Il profilo dell' EC2 istanza del cluster dovrebbe avere la possibilità di accedere alla chiave KMS che verrà utilizzata nella configurazione di registrazione della fase. Inoltre, il profilo di EC2 istanza del cluster dovrebbe consentire azioni kms:Decrypt e kms:GenerateDataKey azioni.

Configurazione del registro dei passaggi

Quando invii un passaggio a EMR, puoi configurare il comportamento di registrazione del passaggio tramite. StepMonitoringConfiguration StepMonitoringConfiguration Contiene l'MonitoringConfiguration oggetto S3 in cui è possibile specificare un bucket and/or di registrazione S3, una chiave KMS per il passaggio.

L'esempio seguente mostra come personalizzare il bucket S3 e la chiave KMS di un passaggio da uno 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 )

Considerazioni

  • Se il tuo cluster non abilita la registrazione del cluster, i log dei passaggi non verranno caricati su S3 anche se fornisci un. StepMonitoringConfiguration

  • Se il passaggio esegue un'applicazione Spark, anche i log del contenitore dell'applicazione verranno caricati nella posizione specificata in. StepMonitoringConfiguration

  • Puoi specificare a LogUri senza specificare un EncryptionKeyArn o viceversa. EMR utilizzerà per impostazione predefinita l'impostazione a livello di cluster per qualsiasi campo omesso in. StepMonitoringConfiguration