我试图了解 Spark Streaming 输出的不同指标的含义,但我有点困惑 之间的区别是什么处理时间 , 总延迟和 处理延迟最后一批?
我查看了 Spark Streaming 指南,其中提到了 处理时间作为判断系统是否落后的关键指标,但其他地方(例如“Pro Spark Streaming:使用 Apache Spark 的实时分析之禅”)谈到了使用 总延迟和 处理延迟 .我没有找到任何列出 Spark Streaming 生成的所有指标的文档,并解释了每个指标的含义。
如果有人能够概述这三个指标中的每一个的含义,或者向我指出任何可以帮助我理解的资源,我将不胜感激。
最佳答案
让我们分解每个指标。为此,让我们定义一个基本的流应用程序,它以给定的 4 秒间隔从某个任意源读取一批,并计算经典字数:
inputDStream.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
.saveAsTextFile("hdfs://...")
flatMap
开始的单个作业并在 saveAsTextFile
结束,并假定作业已提交作为先决条件。8 - 4 = 4
秒,从而使调度延迟 4 秒长。Scheduling Delay + Processing Time
.同样的例子,如果我们落后 4 秒,这意味着我们的调度延迟是 4 秒,而下一批又花了 8 秒来计算,这意味着现在总延迟是 8 + 4 = 12
秒长。来自工作流应用程序的现场示例:
我们看到:
11 - 4 = 7
秒。 7 + 1 = 8
. 关于apache-spark - Spark Streaming 处理时间 vs 总延迟 vs 处理延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40384458/