【问题标题】:how to submit custom log4j.xml file using spark-submit on multi-node cluster using HDFS with spark standalone cluster manager如何在使用 HDFS 和 spark 独立集群管理器的多节点集群上使用 spark-submit 提交自定义 log4j.xml 文件
【发布时间】:2017-01-11 08:46:09
【问题描述】:

我正在使用 spark-submit 提交 java jar 来触发独立集群管理器。但我无法为其提供自定义 log4j.xml 文件。 如果我使用 --files 选项,那么我需要将该 log4j 文件复制到同一位置的所有机器,或者如果我使用 hdfs:// 路径提供它,那么它不会将该文件作为 log4j 并切换到默认 log4j 文件。

我还将 -Dlog4j.configuration 与本地和 hdfs 路径一起使用,但与使用 --files 时发生相同的问题。

如果有人知道解决方案,请帮助我

提前致谢。

【问题讨论】:

    标签: apache-spark log4j hdfs apache-spark-standalone


    【解决方案1】:

    Spark 不支持使用 log4j 在 HDFS 中写入日志,您可以将日志本地写入您的 unix 机器中。

    在 spark-submit 命令中指定 log4j 的属性是:

    --conf "spark.driver.extraJavaOptions=-Dlog4j.configuration= Location of your log4j.properties file"
    
    --conf "spark.executor.extraJavaOptions=-Dlog4j.configuration= location of your log4j.properties file"
    

    您必须在本地 unix 框中创建自定义 log4j.properties 文件而不是 log4j.xml。

    如果您想在 HDFS 中创建自定义日志,您可以在 java 中创建接口或在 scala 中创建 trait 来指定日志级别并将日志写入 HDFS 如需更多参考,您可以查看此question

    【讨论】:

    • 我正在将日志写入 unix 框,我只是从 HDFS 位置读取 log4j 文件。由于使用 log4j.configuration 它从本地 fs 搜索文件,所以我需要将 saem 文件复制到我的所有工作节点。所以我正在寻找一种从 HDFS 或客户端机器提交 log4j 文件的方法,这样就不需要在所有节点上复制
    • 无需将log4j文件复制到所有节点。您提交作业的节点必须是固定的,因此文件应该仅在该节点中,并且每当您提交作业时,spark 都会将您在 spark-submit 中指定的外部 jars r 文件加载到集群中以在分布式模式下运行。
    • 是的,我使用的是固定节点,但是当我给出 log4j 文件的路径时,它将在驱动程序节点上搜索与提交的节点不同的路径,因此我得到以下错误:log4j :ERROR 无法解析 url [file:/data/log4j.xml]。 java.io.FileNotFoundException: /data/log4j.xml (没有这样的文件或目录)
    • 在我的回答中通过上述参数指定log4j.properties文件,而不是通过--files参数。你能告诉我你的 spark-submit 命令吗?
    • 这应该是命令spark-submit --class xyz --master "yarn" --deploy-mode "client" --conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=../conf/spark-log4j.properties" --conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=../conf/spark-log4j.properties" ../lib/xyz.jar
    猜你喜欢
    • 1970-01-01
    • 2018-08-23
    • 2016-10-15
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    相关资源
    最近更新 更多