繁体   English   中英

使用 Spark Structured Streaming 时限制 kafka 批量大小

[英]Limit kafka batch size when using Spark Structured Streaming

我们有一些关于我们的主题的历史数据排队,我们不想在一个批次中处理所有这些数据,因为这很难做到(如果失败,它必须重新开始!)。

此外,了解如何控制批量大小对调整作业非常有帮助。

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

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

理想情况下,我想知道像maxBatchSizeminBatchSize这样的配置,我可以在其中简单地设置我想要的记录数。

这个配置选项maxOffsetsPerTrigger

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

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

如果主题已分区并且所有分区都有消息,则您可以获取的最小消息等于主题中的分区数。 (即)如果有数据,每个分区需要 1 条记录,如果只有一个分区有数据,那么您可以使用的最小记录为 1。如果主题未分区,您可以使用最少 1 条记录,最多可以使用任何记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM