我正在尝试为Spark中的Executor和Driver设置自定义log4j属性。我想这样做而不将log4j文件上传到Executors和Driver节点。我在应用程序jar中有log4j属性文件。
spark-submit --deploy-mode cluster --master yarn --conf spark.driver.userClassPathFirst=true --conf spark.executor.userClassPathFirst=true --conf spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j.properties --conf spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j.properties --class com.***.MainApp s3://**/**-jar-with-dependencies.jar
我没有classpath中的log4j属性。清单如下:
Manifest-version: 1.0
Implementation-Title: ###
Implementation-Version: 1.7
Implementation-Vendor: ###
我的罐子的结构如下:
jar--
---- log4j.properties
---- com/
---- META-INF/
---- MANIFEST.MF
我需要做哪些更改才能使用jar本身中的log4j.properties文件,而不需要将其上传到Executor和Driver节点。
答案 0 :(得分:0)
log4j.properties.template
文件夹中有SPARK/conf
。
您可以编辑该log4j.properties文件,并将其与自定义选项放在同一目录中。
Spark将负责剩余。由于Spark内部使用log4j进行日志记录。