【问题标题】:Spark Structured Streaming metrics: Why process rate can be greater than input rate?Spark Structured Streaming 指标:为什么进程速率可以大于输入速率?
【发布时间】:2022-01-08 01:14:56
【问题描述】:

为什么进程速率会大于输入速率?

据我了解,处理速率是spark对到达数据的处理速率,即处理能力。如果是这样,则处理速率平均必须低于或等于输入速率.如果它更低,我们知道我们需要更多的处理能力,或者重新考虑触发时间。

我的理解基于this blog post 和常识,但我可能错了。我在写这个问题的时候也在源代码中寻找正式的公式。

这是一个处理速率始终大于输入速率的示例:

您可以看到,我们平均每秒处理 200-300 条记录,而我们每秒有 80-120 条记录到达。

设置背景:Spark 3.x 从 Kafka 读取并写入 Delta。

谢谢大家。

【问题讨论】:

    标签: apache-spark apache-kafka apache-spark-sql spark-streaming spark-structured-streaming


    【解决方案1】:

    处理速率大于输入速率可能意味着其处理速度比输入速率快得多。即它每秒可以处理 300-400 个,尽管事件速率是每秒 100 个。例如:假设每秒约 100 条是输入速率,Spark 能够在半秒内处理 100 条记录,这意味着它可以在下半秒内处理 100 条以上,平均而言这将导致约 200 条记录处理率。

    在附加的屏幕截图中,它可以解释为 它可以在每批中处理约 3000 条记录(约 200*~15 秒),每批的处理时间为 15 秒(基于延迟图表中的约 15000 毫秒),但它在每批中处理约 1000 条记录,处理时间为 15 秒。

    【讨论】:

    猜你喜欢
    • 2022-01-05
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多