Spark Streaming + Kinesis:初始记录消费

Spark Streaming + Kinesis : Initial record consumption

我正在使用 Kinesis Stream 提供 Spark 流。 我的项目使用 1s 批次, 在第一批中(队列包含几百万个项目,任务被告知从流的开头开始) Spark Streaming 开始批量处理 10K 条记录。 每 10/20 秒发生一次。

即:

t0 -> records : 0 t1 -> records : 0 ..... t10 -> records: 10.000 -> total process time is 0.8s (lower than batch time) t11 -> recods : 0 .. t15 ->records : 0 .. t20 -> records: 10.000

这种行为一直发生到 spark 到达流的顶部为止。在 htat 之后,每批将每秒处理元素。

感觉在开始点它应该始终如一地处理每批次的大量记录,而不是让大量的批次不处理任何记录。

我忽略了任何设置吗?所描述的行为是否符合预期?

此问题的原因是这个错误:https://issues.apache.org/jira/browse/SPARK-18620 在 spark-kinesis 消费者中,它没有正确设置 maxRate。