我正在使用spark 1.5.2
。我理解批处理间隔是什么,基本上是处理部分应该从接收器接收的数据开始的间隔。
但我不明白什么是spark.streaming.receiver.maxRate
。从一些研究来看,它显然是一个重要的参数。
让我们考虑一个场景。我的批处理间隔设置为60秒。 spark.streaming.receiver.maxRate
设置为60 * 1000。如果由于某些临时负载而在60年代获得60 * 2000记录该怎么办?会发生什么?是否会删除额外的60 * 1000记录?或者在批处理间隔期间处理是否会发生两次?
答案 0 :(得分:5)
属性spark.streaming.receiver.maxRate
适用于每秒的记录数。
从流中接收数据时应用接收器最大速率 - 这意味着即使在批处理间隔应用之前也是如此。换句话说,您将永远不会获得比spark.streaming.receiver.maxRate
中设置的每秒更多的记录。附加记录将“保留”在流中(例如Kafka,网络缓冲区......)并在下一批处理中进行处理。