【发布时间】:2017-02-27 22:07:17
【问题描述】:
我正在尝试在我的 Spark 作业中使用 log4j2 记录器。基本要求:log4j2 配置位于类路径之外,因此我需要明确指定其位置。当我直接在 IDE 中运行我的代码而不使用 spark-submit 时,log4j2 运行良好。但是,当我使用spark-submit 向 Spark 集群提交相同的代码时,它无法找到 log42 配置并回退到默认的旧 log4j。
启动器命令
${SPARK_HOME}/bin/spark-submit \
--class my.app.JobDriver \
--verbose \
--master 'local[*]' \
--files "log4j2.xml" \
--conf spark.executor.extraJavaOptions="-Dlog4j.configurationFile=log4j2.xml" \
--conf spark.driver.extraJavaOptions="-Dlog4j.configurationFile=log4j2.xml" \
myapp-SNAPSHOT.jar
maven 中的 Log4j2 依赖项
<dependencies>
. . .
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<!-- Bridge log4j to log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<!-- Bridge slf4j to log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependencies>
有什么我可能会错过的想法吗?
【问题讨论】:
标签: apache-spark log4j log4j2