apache-spark - 将日志与 Apache Spark 分开

标签 apache-spark

我希望有来自 worker 、主人和工作的单独的日志文件(执行者、提交,不知道如何调用它)。我尝试在 log4j.properties 中进行配置,例如

log4j.appender.myAppender.File=/some/log/dir/${log4j.myAppender.FileName}

并且比在 SPARK_MASTER_OPTSSPARK_WORKER_OPTSspark.executor.extraJavaOptions 中传递 log4j.myAppender.FileNamespark.driver.extraJavaOptions

它对于 worker 和主人来说工作得很好,但对于执行者和驱动程序却失败了。以下是我如何使用它们的示例:

./spark-submit ... --conf "\"spark.executor.extraJavaOptions=log4j.myAppender.FileName=myFileName some.other.option=foo\"" ...

我还尝试将 log4j.myAppender.FileNamespark-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/

相关文章:

scala - 对多个值进行分组

apache-spark - Spark Dataframe 默认是如何分区的?

scala - 如何在给定多个条件的情况下对 Spark 数据帧执行 "Lookup"操作

java - Spark序列化和Java序列化有什么区别?

scala - Spark UDAF - 使用泛型作为输入类型?

mysql - 如何从每 12 小时发生的事件的每个 "group"中提取第一个时间戳

scala - 如何根据某些条件从 Spark 数据框中获取几行

apache-spark - 在 Apache Spark Logistic 回归算法中获得相同的精度、召回率和 F 分数值

scala - 如何使用 Spark DataFrames 和 Cassandra 设置命名策略

python - EMR Spark 附加到 parquet 文件的步骤是覆盖 parquet 文件