Amazon EMR Serverless の Apache Log4j2 プロパティを設定する
このページでは、StartJobRun
で EMR Serverless ジョブのカスタム Apache Log4j 2.x
Amazon EMR Serverless の Spark Log4j2 プロパティを設定する
Amazon EMR リリース 6.8.0 以降では、Apache Log4j 2.xspark-driver-log4j2
および spark-executor-log4j2
の分類を使用します。
Spark の Log4j2 分類
Spark ログ設定をカスタマイズするには、applicationConfiguration
で次の分類を使用します。Log4j 2.x プロパティを設定するには、次の properties
を使用します。
spark-driver-log4j2
-
この分類は、ドライバーの
log4j2.properties
ファイル内の値を設定します。 spark-executor-log4j2
-
この分類は、エグゼキュターの
log4j2.properties
ファイル内の値を設定します。
Spark の Log4j2 設定例
次の例は、applicationConfiguration
を使用して Spark ジョブを送信し、Spark ドライバーとエグゼキュターの Log4j2 設定をカスタマイズする方法を示しています。
ジョブを送信するときではなく、アプリケーションレベルで 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 アプリケーションを作成する方法を示しています。
Spark の Log4j2 に関する考慮事項
Spark プロセスでは、次の Log4j2.x プロパティは設定できません。
-
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
ファイル