什么是 spark.streaming.receiver.maxRate?它如何与批次间隔一起使用

What is spark.streaming.receiver.maxRate? How does it work with batch interval

我正在与 spark 1.5.2 合作。我了解批处理间隔是什么,本质上是处理部分应该开始处理从接收器接收到的数据的间隔。 但是我不明白什么是spark.streaming.receiver.maxRate。从一些研究来看,它显然是一个重要参数。

让我们考虑一个场景。我的批次间隔设置为 60 秒。并且 spark.streaming.receiver.maxRate 设置为 60*1000。如果由于某些临时负载,我在 60 秒内获得 60*2000 条记录怎么办?会发生什么?是否会丢弃额外的 60*1000 条记录?或者在该批处理间隔期间处理会发生两次吗?

属性 spark.streaming.receiver.maxRate 适用于记录数 每秒 .

接收器最大速率 在从流接收数据时应用 - 这意味着甚至在批间隔应用之前。换句话说,您每秒获得的记录数永远不会超过 spark.streaming.receiver.maxRate 中设置的记录数。额外的记录将只 "stay" 在流中(例如 Kafka,网络缓冲区,...)并在下一批处理。