spark中如何测量每个算子的运行时间
Posted
技术标签:
【中文标题】spark中如何测量每个算子的运行时间【英文标题】:How to measure the runtime of each operator in spark 【发布时间】:2018-03-12 10:14:53 【问题描述】:有没有办法测量 Spark 中每个算子的运行时间
例如,我有以下字数统计代码:
val counts = textFile.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
如何分别测量每个 map/flatMap/reduceByKey 算子的运行时间?
【问题讨论】:
【参考方案1】:你可以做一些奇怪的事情,比如为每个转换创建 accumulators 并在那里积累时间。 Here 是时间测量代码。 只需使用它来测量每个操作的时间并为累加器增加价值。
但这真的很奇怪
首先 - 所有转换都转换为任务,然后发送给工作人员执行。甚至可能多个转换都在同一个任务中。
所以我认为你想要的是使用Spark Web UI。
【讨论】:
谢谢,我觉得累加器可以用,我试试。我尝试了 Spark Web UI,但它没有提供所需的信息,它显示了整个任务的运行时,如你所说,它可能由多个运算符组成。以上是关于spark中如何测量每个算子的运行时间的主要内容,如果未能解决你的问题,请参考以下文章
大数据:Spark 算子排序算子sortByKey来看大数据平台下如何做排序
spark的做算子统计的Java代码(在Linux系统集群式运行)
大数据:Spark Core用LogQuery的例子来说明Executor是如何运算RDD的算子