如何在Spark Streaming上下文中创建作业日志?

时间:2016-05-06 13:43:26

标签: apache-spark performance-testing spark-streaming

我目前正在Spark Streaming应用程序上执行性能测试。 一般来说,我通过套接字连接接收JSON消息,每秒一条消息。 然后,我使用Spark Streaming方法将消息作为RDD处理,最后将生成的RDD打印到数据库中。

这是我的问题:无论何时我想检查块处理时间或Schedulling Delays等,我都需要在端口4040上访问Spark UI。

我想要做的是,在程序运行时创建一个带有这些值的Log,并将其作为txt文件存储在某个目录中。

现在我知道,使用SparkContext,我可以使用addSparkListener方法,例如Logger。

如何为Spark Streaming上下文执行此操作?

非常感谢,如果我感到困惑,请道歉。

1 个答案:

答案 0 :(得分:0)

一个选项是查询Sparks REST API,它通过JSON格式的HTTP请求公开这些指标:

  

除了在UI中查看指标外,它们还可以作为JSON使用。这为开发人员提供了一种为Spark创建新的可视化和监视工具的简便方法。 JSON既可用于正在运行的应用程序,也可用于历史记录服务器。端点安装在/ api / v1。例如,对于历史服务器,它们通常可以在http://:18080 / api / v1上访问,对于正在运行的应用程序,可以在http://localhost:4040/api/v1访问。

端点列出了所有可用的URI以及它们公开的数据。您可以拥有一个服务,在流处理期间查询该数据并分析指标。