java - 无法在 spark 中使用 jar 中的 log4j.properties
问题描述
我的 log4j.properties 与 uber/fat 应用程序 jar 打包在一起,这是我的 spark 提交命令
spark-submit --files file:log4j.properties
--conf spark.driver.extraJavaOptions=-Dlog4j.configuration=classpath:log4j.properties
--conf spark.executor.extraJavaOptions=-Dlog4j.configuration=classpath:log4j.properties
--class com.myproject.Application --deploy-mode cluster --master yarn s3://myappbucket/application.jar
log4j.properties 已打包并在 jar 中可用,但是在运行应用程序时它们对执行程序不可用,我面临以下错误,我在这里缺少什么,如何获取执行程序可用的 log4j.properties /worker 节点,有人可以帮忙吗
我在 spark submit 命令中使用了 classpath:log4j.properties,看起来执行程序没有在下面进行我的 log4j 配置更改
log4j.logger.com.myproject.Application=INFO,appfile
log4j.appender.appfile=org.apache.log4j.RollingFileAppender
log4j.appender.appfile.File=${base.log.dir}/app.log
log4j.appender.appfile.MaxFileSize=200MB
log4j.appender.appfile.MaxBackupIndex=10
没有任何效果,所有内容都打印在 stdout 和 stderr 日志上,而不是创建 app.log 并记录在 app.log 文件中
解决方案
这file:
意味着它正在文件系统上而不是在 jar 中寻找配置文件。你可能想试试classpath:log4j.properties
。
推荐阅读
- python - 如何使用 python 遍历目录并从所有 csv 中删除特定列?
- sql - GROUP BY A、B、C 和其他用于计数数据?
- javascript - OnlyOffice 中调试插件的可能替代方案
- java - 在谷歌方向android studio中循环url
- clickhouse - clickhouse外部字典加载错误
- javascript - d3.js v7 相当于 d3.scale.ordinal()
- list - pyspark:来自rdd的包含列表列表的数据框
- python - Python3.4 将 int16_t 字符串转换为有符号浮点数
- java - 什么会导致 Scanner 对象使用 hasNext() 方法返回 False?
- python - 在 TensorFlow 模型中获取类层错误