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



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

我的问题是:每当我想检查块处理时间或调度延迟等时,我都需要转到端口4040上的Spark UI。

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

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

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

非常感谢,如果我感到困惑,我深表歉意。

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

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

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

最新更新