监视Apache Spark日志和动态应用程序/驱动程序日志

时间:2016-06-06 16:16:13

标签: logging apache-spark log4j

我们正在独立设置(版本1.6)上运行spark-streaming应用程序。

登录spark似乎有点分散,我正在尝试配置一个nagios日志文件监视器,用于检查某些"错误"在日志文件中并发出警报。

我目前对火花日志的理解如下:

  1. Spark-Worker拥有它自己的日志,在我的情况下,它写入了一个 静态位置/var/log/spark/spark-worker.out
  2. Spark-Master拥有它自己的日志,在我的情况下,它写入了一个 静态位置/var/log/spark/spark-master.out
  3. 我可以在/ etc / spark / conf /下配置log4j.properties文件 改变格式,appenders等..对于spark-worker和spark-master日志
  4. 现在用于驱动程序和Spark / Executor应用程序日志 看起来这些日志的位置是动态的,在我的情况下,spark会在/ var / run / spark / work下生成新的目录。

    我的问题:

    监视静态位置日志文件对于spark-worker和spark-master来说非常简单。关于如何监控应用程序和驱动程序的动态日志,我感到有点困惑。

    根据我在文档中看到的内容,似乎在spark-submit上我可以将带有位置的-D选项传递给log4j.properties文件。

    这可以配置为将日志流式传输到静态位置的本地syslog,然后让nagios监控静态日志吗?

    在这种情况下,其他人做了什么?

1 个答案:

答案 0 :(得分:2)

是纱线还是火花独立。如果您使用纱线,则可以使用命令

获取所有合并日志
yarn logs -applicationId <application ID> <options>