단계 로그 파일의 로그 위치 사용자 지정 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

단계 로그 파일의 로그 위치 사용자 지정

Amazon EMR 버전 7.11부터 단계별로 S3 로깅 동작을 사용자 지정할 수 있습니다. 단일 단계의 경우 단계의 로그가 업로드되는 고유한 S3 버킷을 선택할 수 있습니다. S3에서 단계의 저장 로그를 암호화하는 데 사용되는 고유한 KMS 키를 선택할 수도 있습니다. 이러한 옵션은 클러스터를 시작할 때 구성된 모든 클러스터 전체 로깅 설정보다 우선합니다.

사전 조건

  • 클러스터에 클러스터 로깅이 활성화되어 있어야 합니다. 자세한 내용은 Amazon EMR 클러스터 로깅 및 디버깅 구성을 참조하세요.

  • EC2 인스턴스 프로파일:

    • 클러스터의 EC2 인스턴스 프로파일은 단계의 로깅 구성에 사용될 S3 버킷에 액세스할 수 있어야 합니다.

    • 클러스터의 EC2 인스턴스 프로파일이 단계의 로깅 구성에 사용될 KMS 키에 액세스할 수 있어야 합니다. 또한 클러스터의 EC2 인스턴스 프로파일에서 kms:Decryptkms:GenerateDataKey 작업을 허용해야 합니다.

단계 로그 구성

EMR에 단계를 제출할 때 StepMonitoringConfiguration을 통해 단계의 로깅 동작을 구성할 수 있습니다. StepMonitoringConfiguration에는 단계에 대한 S3 로깅 버킷 및/또는 KMS 키를 지정할 수 있는 S3MonitoringConfiguration 객체가 포함되어 있습니다. S3

다음 예제에서는 Python 스크립트에서 단계의 S3 버킷과 KMS 키를 사용자 지정하는 방법을 보여줍니다.

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 )

고려 사항

  • 클러스터가 클러스터 로깅을 활성화하지 않으면를 제공하더라도 단계 로그가 S3에 업로드되지 않습니다StepMonitoringConfiguration.

  • 단계에서 Spark 애플리케이션을 실행하는 경우 애플리케이션의 컨테이너 로그도에 지정된 위치에 업로드됩니다StepMonitoringConfiguration.

  • EncryptionKeyArn 또는 그 반대로 지정LogUri하지 않고를 지정할 수 있습니다. EMR은 기본적으로에서 생략된 모든 필드에 대한 클러스터 전체 설정으로 설정됩니다StepMonitoringConfiguration.