我希望有来自 worker 、主人和工作的单独的日志文件(执行者、提交,不知道如何调用它)。我尝试在 log4j.properties
中进行配置,例如
log4j.appender.myAppender.File=/some/log/dir/${log4j.myAppender.FileName}
并且比在 SPARK_MASTER_OPTS
、SPARK_WORKER_OPTS
、spark.executor.extraJavaOptions
中传递 log4j.myAppender.FileName
和spark.driver.extraJavaOptions
。
它对于 worker 和主人来说工作得很好,但对于执行者和驱动程序却失败了。以下是我如何使用它们的示例:
./spark-submit ... --conf "\"spark.executor.extraJavaOptions=log4j.myAppender.FileName=myFileName some.other.option=foo\"" ...
我还尝试将 log4j.myAppender.FileName
与 spark-defaults.conf
中的一些默认值一起放入,但它也不起作用。
有什么办法可以实现我想要的吗?
最佳答案
可以通过添加这些条目(来 self 的 Windows 配置)通过 conf/spark-defaults.conf
配置执行程序和驱动程序的日志记录
spark.driver.extraJavaOptions -Dlog4j.configuration=file:C:/dev/programs/spark-1.2.0/conf/log4j-driver.properties
spark.executor.extraJavaOptions -Dlog4j.configuration=file:C:/dev/programs/spark-1.2.0/conf/log4j-executor.properties
请注意,上面的每个条目都引用不同的 log4j.properties
文件,以便您可以独立配置它们。
关于apache-spark - 将日志与 Apache Spark 分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28449059/