【问题标题】:Passing custom log4j.properties file from s3从 s3 传递自定义 log4j.properties 文件
【发布时间】:2021-03-19 11:10:17
【问题描述】:

我正在尝试设置自定义日志记录配置。如果我将日志文件添加到集群并在我的 spark 提交中引用它,则配置生效。但如果我尝试使用--files s3://... 访问该文件,则它不起作用。

有效(假设我将文件放在主目录中):

spark-submit \
--master yarn \
--conf spark.driver.extraJavaOptions=-Dlog4j.configuration=file:log4j.properties \
--conf spark.executor.extraJavaOptions=-Dlog4j.configuration=file:log4j.properties \

不起作用:

spark-submit \
--master yarn \
--files s3://my_path/log4j.properties \
--conf spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j.properties \
--conf spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j.properties \

如何使用 s3 中的配置文件来设置日志记录配置?

【问题讨论】:

    标签: apache-spark log4j amazon-emr spark-submit


    【解决方案1】:

    您始终不能直接从本地文件系统加载 Log4J 文件。

    您可以在 JAR 中使用配置,因为 spark 会随您的工作下载 JAR,您应该能够间接获取它。创建一个仅包含 log4j.properties 文件的 JAR,告诉 spark 将其与作业一起加载

    【讨论】:

    • 您有示例或文档吗?我不确定如何指向 jar 中的文件 ``` spark-submit \ --master yarn \ --jars link-to-my-jar.jar \ --conf spark.driver.extraJavaOptions=-Dlog4j.configuration=? \ --conf spark.executor.extraJavaOptions=-Dlog4j.configuration=? \ --class com.blah.Main link-to-my-jar.jar \ ```
    • 哦,不需要设置任何 log4j 选项。只需创建一个只有 log4J.properties 文件的 JAR。 Log4J 在加载后立即查找资源 /log4.properties。 (注意:如果你有 >1 log4 资源生命变得复杂,那么 spark conf 可能会首先被拾取......)
    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 2014-08-05
    • 2014-12-03
    • 2017-07-16
    • 1970-01-01
    • 2022-07-20
    • 2020-09-05
    • 2011-11-12
    相关资源
    最近更新 更多