监控Spark实际工作时间与通信时间

时间:2016-06-06 16:18:06

标签: apache-spark pyspark distributed-computing

在Spark群集上,如果作业非常小,我认为群集效率很低,因为大部分时间都花在节点之间的通信上,而不是利用节点上的处理器。

有没有办法监控通过spark-submit提交的作业有多少时间浪费在通信上,以及实际计算量是多少?

然后,我可以监控此比率,以检查我的文件聚合方案或处理算法在分配效率方面的效率。

我查看了Spark文档,找不到任何相关内容,但我确定我错过了一些东西。任何想法?

1 个答案:

答案 0 :(得分:2)

您可以在Spark UI中看到此信息,因为您正在运行Spark 1.4.1或更高版本(抱歉,但我不知道如何为早期版本的Spark执行此操作)。

以下是示例图片: SparkUI Executor Monitoring

图片来自the page

简要摘要:您可以在Spark UI中查看Spark作业中发生的所有事件的时间表。从那里,您可以放大每个单独的工作和每个单独的任务。每个任务分为shceduler延迟,序列化/反序列化,计算,shuffle等。

现在,这显然是一个非常漂亮的用户界面,但您可能需要更强大的功能,以便您可以通过编程方式检查此信息。看起来here,您可以使用REST API以JSON格式导出日志记录信息。