쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Amazon EMR Serverless에 대한 Apache Log4j2 속성 구성 - Amazon EMR

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

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

Amazon EMR Serverless에 대한 Apache Log4j2 속성 구성

이 페이지에서는 StartJobRun에서 EMR Serverless 작업에 대한 사용자 지정 Apache Log4j 2.x 속성을 구성하는 방법을 설명합니다. 애플리케이션 수준에서 Log4j 분류를 구성하려면 EMR Serverless의 기본 애플리케이션 구성 섹션을 참조하세요.

Amazon EMR Serverless에 대한 Spark Log4j2 속성 구성

Amazon EMR 릴리스 6.8.0 이상에서는 Apache Log4j 2.x 속성을 사용자 지정하여 세분화된 로그 구성을 지정할 수 있습니다. 그러면 EMR Serverless에서 Spark 작업의 문제 해결이 간소화됩니다. 이러한 속성을 구성하려면 spark-driver-log4j2spark-executor-log4j2 분류를 사용합니다.

Spark에 대한 Log4j2 분류

Spark 로그 구성을 사용자 지정하려면 applicationConfiguration에서 다음 분류를 사용합니다. Log4j 2.x 속성을 구성하려면 다음 properties를 사용합니다.

spark-driver-log4j2

이 분류는 드라이버에 대한 log4j2.properties 파일의 값을 설정합니다.

spark-executor-log4j2

이 분류는 실행기에 대한 log4j2.properties 파일의 값을 설정합니다.

Spark에 대한 Log4j2 구성 예제

다음 예제에서는 Spark 드라이버 및 실행기에 대한 Log4j2 구성을 사용자 지정하기 위해 applicationConfiguration을 사용해 Spark 작업을 제출하는 방법을 보여줍니다.

작업을 제출할 때 대신 애플리케이션 수준에서 Log4j 분류를 구성하려면 EMR Serverless의 기본 애플리케이션 구성 섹션을 참조하세요.

aws emr-serverless start-job-run \ --application-id application-id \ --execution-role-arn job-role-arn \ --job-driver '{ "sparkSubmit": { "entryPoint": "/usr/lib/spark/examples/jars/spark-examples.jar", "entryPointArguments": ["1"], "sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1" } }' --configuration-overrides '{ "applicationConfiguration": [ { "classification": "spark-driver-log4j2", "properties": { "rootLogger.level":"error", // will only display Spark error logs "logger.IdentifierForClass.name": "classpath for setting logger", "logger.IdentifierForClass.level": "info" } }, { "classification": "spark-executor-log4j2", "properties": { "rootLogger.level":"error", // will only display Spark error logs "logger.IdentifierForClass.name": "classpath for setting logger", "logger.IdentifierForClass.level": "info" } } ] }'

샘플 Spark 작업의 Log4j2

다음 코드 샘플에서는 애플리케이션에 대한 사용자 지정 Log4j2 구성을 초기화하는 동안 Spark 애플리케이션을 생성하는 방법을 보여줍니다.

Python
예 - Python에서 Spark 작업에 Log4j2 사용
import os import sys from pyspark import SparkConf, SparkContext from pyspark.sql import SparkSession app_name = "PySparkApp" if __name__ == "__main__": spark = SparkSession\ .builder\ .appName(app_name)\ .getOrCreate() spark.sparkContext._conf.getAll() sc = spark.sparkContext log4jLogger = sc._jvm.org.apache.log4j LOGGER = log4jLogger.LogManager.getLogger(app_name) LOGGER.info("pyspark script logger info") LOGGER.warn("pyspark script logger warn") LOGGER.error("pyspark script logger error") // your code here spark.stop()

Spark 작업을 실행하는 경우 드라이버에 대해 Log4j2를 사용자 지정하려면 다음 구성을 사용할 수 있습니다.

{ "classification": "spark-driver-log4j2", "properties": { "rootLogger.level":"error", // only display Spark error logs "logger.PySparkApp.level": "info", "logger.PySparkApp.name": "PySparkApp" } }
Scala
예 - Scala에서 Spark 작업에 Log4j2 사용
import org.apache.log4j.Logger import org.apache.spark.sql.SparkSession object ExampleClass { def main(args: Array[String]): Unit = { val spark = SparkSession .builder .appName(this.getClass.getName) .getOrCreate() val logger = Logger.getLogger(this.getClass); logger.info("script logging info logs") logger.warn("script logging warn logs") logger.error("script logging error logs") // your code here spark.stop() } }

Spark 작업을 실행하는 경우 드라이버에 대해 Log4j2를 사용자 지정하려면 다음 구성을 사용할 수 있습니다.

{ "classification": "spark-driver-log4j2", "properties": { "rootLogger.level":"error", // only display Spark error logs "logger.ExampleClass.level": "info", "logger.ExampleClass.name": "ExampleClass" } }
예 - Python에서 Spark 작업에 Log4j2 사용
import os import sys from pyspark import SparkConf, SparkContext from pyspark.sql import SparkSession app_name = "PySparkApp" if __name__ == "__main__": spark = SparkSession\ .builder\ .appName(app_name)\ .getOrCreate() spark.sparkContext._conf.getAll() sc = spark.sparkContext log4jLogger = sc._jvm.org.apache.log4j LOGGER = log4jLogger.LogManager.getLogger(app_name) LOGGER.info("pyspark script logger info") LOGGER.warn("pyspark script logger warn") LOGGER.error("pyspark script logger error") // your code here spark.stop()

Spark 작업을 실행하는 경우 드라이버에 대해 Log4j2를 사용자 지정하려면 다음 구성을 사용할 수 있습니다.

{ "classification": "spark-driver-log4j2", "properties": { "rootLogger.level":"error", // only display Spark error logs "logger.PySparkApp.level": "info", "logger.PySparkApp.name": "PySparkApp" } }

Spark에 대한 Log4j2 고려 사항

다음 Log4j2.x 속성은 Spark 프로세스에 대해 구성할 수 없습니다.

  • rootLogger.appenderRef.stdout.ref

  • appender.console.type

  • appender.console.name

  • appender.console.target

  • appender.console.layout.type

  • appender.console.layout.pattern

구성할 수 있는 Log4j2.x 속성에 대한 자세한 내용은 GitHub의 log4j2.properties.template file을 참조하세요.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.