기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
단계 로그 파일의 로그 위치 사용자 지정
Amazon EMR 버전 7.11부터 단계별로 S3 로깅 동작을 사용자 지정할 수 있습니다. 단일 단계의 경우 단계의 로그가 업로드되는 고유한 S3 버킷을 선택할 수 있습니다. S3에서 단계의 저장 로그를 암호화하는 데 사용되는 고유한 KMS 키를 선택할 수도 있습니다. 이러한 옵션은 클러스터를 시작할 때 구성된 모든 클러스터 전체 로깅 설정보다 우선합니다.
사전 조건
-
클러스터에 클러스터 로깅이 활성화되어 있어야 합니다. 자세한 내용은 Amazon EMR 클러스터 로깅 및 디버깅 구성을 참조하세요.
-
EC2 인스턴스 프로파일:
-
클러스터의 EC2 인스턴스 프로파일은 단계의 로깅 구성에 사용될 S3 버킷에 액세스할 수 있어야 합니다.
-
클러스터의 EC2 인스턴스 프로파일이 단계의 로깅 구성에 사용될 KMS 키에 액세스할 수 있어야 합니다. 또한 클러스터의 EC2 인스턴스 프로파일에서
kms:Decrypt및kms: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.