标签: apache-spark pyspark distributed-computing
在Spark群集上,如果作业非常小,我认为群集效率很低,因为大部分时间都花在节点之间的通信上,而不是利用节点上的处理器。
有没有办法监控通过spark-submit提交的作业有多少时间浪费在通信上,以及实际计算量是多少?
然后,我可以监控此比率,以检查我的文件聚合方案或处理算法在分配效率方面的效率。
我查看了Spark文档,找不到任何相关内容,但我确定我错过了一些东西。任何想法?
答案 0 :(得分:2)
您可以在Spark UI中看到此信息,因为您正在运行Spark 1.4.1或更高版本(抱歉,但我不知道如何为早期版本的Spark执行此操作)。
以下是示例图片:
图片来自the page。
简要摘要:您可以在Spark UI中查看Spark作业中发生的所有事件的时间表。从那里,您可以放大每个单独的工作和每个单独的任务。每个任务分为shceduler延迟,序列化/反序列化,计算,shuffle等。
现在,这显然是一个非常漂亮的用户界面,但您可能需要更强大的功能,以便您可以通过编程方式检查此信息。看起来here,您可以使用REST API以JSON格式导出日志记录信息。