使用Spark结构化流时限制kafka批处理大小

时间:2018-10-24 13:55:27

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

我们在我们的主题上排队了一些历史数据,我们不想一次处理所有这些数据,因为这样做比较困难(如果失败,则必须重新开始!)。

此外,知道如何控制批处理大小对于调整作业非常有帮助。

使用DStreams时,尽可能精确地控制批次大小的方法是Limit Kafka batches size when using Spark Streaming

相同的方法,即设置maxRatePerPartition然后调优batchDuration非常麻烦,但与DStream一起使用,对结构化流根本不起作用。

理想情况下,我想了解类似maxBatchSizeminBatchSize的配置,在这里我可以简单地设置所需的记录数。

1 个答案:

答案 0 :(得分:5)

此配置选项maxOffsetsPerTrigger

  

每个触发间隔处理的最大偏移数的速率限制。指定的偏移总数将按比例分配给不同卷的topicPartitions。

注意,如果您有一个包含开始和结束偏移量的检查点目录,则应用程序将处理目录中第一批的偏移量,从而忽略此配置。 (下一批将尊重它。)