내용으로 건너뛰기

AWS Glue 작업에서 생성하는 로그 수를 줄이려면 어떻게 해야 합니까?

3분 분량
0

AWS Glue 작업으로 인해 Amazon CloudWatch에 너무 많은 로그가 생성됩니다. 생성된 로그 수를 줄이고 싶습니다.

간략한 설명

AWS Glue Spark 추출/전환/적재(ETL) 작업은 내부 장애를 모니터링하고 실패한 작업을 진단하는 데 사용할 수 있는 많은 로그를 생성합니다. AWS Glue 작업이 인스턴스에서 생성하는 로그 수를 제어할 수는 없지만 로그의 상세 수준은 조정할 수 있습니다.

로그 상세 수준을 조정하려면 다음 방법을 사용하십시오.

  • 연속 로깅을 위한 표준 필터 설정을 활성화합니다.
  • Spark 컨텍스트 메서드 setLogLevel을 사용합니다.
  • 사용자 지정 log4j.properties 파일을 사용합니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

연속 로깅을 위한 표준 필터 설정 활성화

작업에 대해 연속 로깅을 활성화한 경우 로그 필터링 옵션의 표준 필터를 활성화하십시오.

이 필터를 활성화하려면 AWS CLI를 사용하여 다음 작업 파라미터를 추가하십시오.

'--enable-continuous-cloudwatch-log': 'true''--enable-continuous-log-filter': 'true'

참고: AWS Glue 연속 로깅은 AWS Glue 4.0 이하 버전에서만 사용할 수 있습니다.

Spark 컨텍스트 메서드 setLogLevel 사용

pyspark.context.SparkContext에서 setLogLevel 메서드를 사용하여 작업의 로깅 수준을 설정할 수 있습니다. 유효한 로깅 수준에는 ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN이 있습니다. 자세한 내용은 Apache Spark 웹 사이트의 setLogLevel을 참조하십시오.

Spark 컨텍스트 메서드를 가져오고 로깅 수준을 설정하려면 AWS Glue 작업에 다음 코드를 추가하십시오.

from pyspark.context import SparkContext
sc = SparkContext()
sc.setLogLevel("new-log-level")

참고: new-log-level을 새 로깅 수준으로 바꾸십시오. 이 코드는 드라이버 로그 동작에 영향을 주지만 실행자 로그를 변경하지는 않습니다.

자세한 내용은 Apache Spark 웹 사이트에서 로깅 구성을 참조하십시오.

사용자 지정 log4j.properties 파일 사용

AWS Glue 3.0은 로깅 동작에 Log4j 1을 사용하며, log4j.properties 파일로 이러한 동작을 사용자 지정할 수 있습니다. AWS Glue 4.0은 로깅 동작에 Log4j 2를 사용하며, log4j2.properties 파일로 이러한 동작을 사용자 지정할 수 있습니다. Log4j 2에 대한 자세한 내용은 Apache Logging Services 웹 사이트의 구성 속성을 참조하십시오.

참고: 사용자 지정 log4j.properties 또는 log4j2.properties 구성 파일을 적용하는 경우 AWS Glue는 연속 로깅을 비활성화합니다. 또한 사용자 지정 Log4j 속성은 AWS Glue 4.0 이하 버전에서만 사용할 수 있습니다.

log4j2.properties 파일에 로깅 기본 설정을 포함할 수 있습니다. 그런 다음, Amazon Simple Storage Service(Amazon S3)에 파일을 업로드하고 AWS Glue 작업에서 파일을 사용할 수 있습니다.

AWS Glue 4.0에서 사용자 지정 구성 파일을 사용하려면 다음 단계를 완료하십시오.

  1. log4j2.properties라는 파일을 만들어 루트 로거 수준을 오류로 설정합니다.
    log4j2.properties 파일 예시:

    rootLogger.level = error
    rootLogger.appenderRef.stdout.ref = STDOUT
    
    appender.console.type = Console
    appender.console.name = STDOUT
    appender.console.target = SYSTEM_ERR
    appender.console.layout.type = PatternLayout
    appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %p [%t] %c{2} (%F:%M(%L)): %m%n
  2. log4j2.properties 파일을 Amazon S3에 업로드하고 파일의 S3 URI를 복사합니다.

  3. AWS Glue 작업에서 다음 파라미터를 추가합니다.

    --extra-files, s3://[objectpath]/log4j2.properties

    참고: s3://[objectpath]/log4j.properties를 위 단계에서 사용한 S3 URI로 바꾸십시오.

  4. AWS Glue 작업을 저장하고 실행합니다.

  5. /aws-glue/jobs/error 로그 그룹에서 관련 로그 스트림을 확인합니다.

관련 정보

Amazon CloudWatch를 사용한 모니터링

AWS 공식업데이트됨 7달 전