As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Personalizando a localização do log para arquivos de log de etapas
A partir da versão 7.11 do Amazon EMR, agora você pode personalizar o comportamento de registro do S3 para etapas por etapa. Em uma única etapa, você pode escolher um bucket S3 exclusivo para o qual os registros da etapa são carregados. Você também pode escolher uma chave KMS exclusiva que é usada para criptografar os registros da etapa em repouso, no S3. Essas opções têm precedência sobre todas as configurações de registro em todo o cluster que são definidas ao iniciar o cluster.
Pré-requisitos
-
Seu cluster deve ter o registro de cluster ativado. Para obter mais informações, consulte Configurar o registro e a depuração de clusters do Amazon EMR.
-
EC2 perfil da instância:
-
O perfil de EC2 instância do seu cluster deve ter permissão para acessar o bucket do S3, que será usado na configuração de registro da etapa.
-
O perfil de EC2 instância do seu cluster deve ter permissão para acessar a chave KMS que será usada na configuração de registro da etapa. Além disso, o perfil de EC2 instância do seu cluster deve permitir
kms:Decryptkms:GenerateDataKeyações.
-
Configuração do log de etapas
Ao enviar uma etapa para o EMR, você pode configurar o comportamento de registro da etapa via. StepMonitoringConfiguration O StepMonitoringConfiguration contém o MonitoringConfiguration objeto S3, no qual você pode especificar um bucket de registro do S3 e and/or uma chave KMS para a etapa.
O exemplo a seguir mostra como você pode personalizar o bucket S3 e a chave KMS de uma etapa a partir de um 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 )
Considerações
-
Se seu cluster não habilitar o registro em cluster, os registros de etapas não serão enviados para o S3, mesmo que você forneça um
StepMonitoringConfiguration. -
Se sua etapa executar um aplicativo Spark, os registros do contêiner do aplicativo também serão enviados para o local especificado no
StepMonitoringConfiguration. -
Você tem permissão para especificar um
LogUrisem especificar umEncryptionKeyArnou vice-versa. O EMR usará como padrão a configuração de todo o cluster para qualquer campo que seja omitido no.StepMonitoringConfiguration