kfka客户端除法

kfka客户端取消息时用`offsetOutofRangeException'终止

写由ivas.yadav

2022年6月1日

问题

有Apachespark应用程序试图从ApacheKafka源码获取消息kafkashaded.org.apache.kafka.clients.consumer.OffsetOutOfRangeException报错消息

因果

Spark程序试图从Kafka获取过期数据偏移

通常我们在两种假设中都看到这一点:

假想一

Spark程序处理数据时终止重新激活Spark应用时,它试图获取基于先前计算数据偏移的数据如果数据偏移在Spark应用终止期间过期,问题可能发生

假想2

保留策略定时短于处理批量所需时间批处理时 卡夫卡偏移部分过期偏差计算下一批,如果检查站元数据因过期偏差出现错位,问题就可能发生

求解

假想1-选项1

重开spark应用前删除现有检查站新建检查站加插新取偏移细节

偏差在于某些数据可能被忽略, 因为偏差在卡夫卡过期

假想1-选项2

增加Kafka保留专题策略,使其长于Spark应用离线时间

无漏数据解决方案,因为在spark应用重新启动前没有偏差过期

保留策略有两种类型:

删除

信息学

如果设置多保留策略,限制程度越强的控件可按题目推翻

卡夫卡评论主题级配置获取更多资料说明如何设置专题重置

假想2-选项1

增加分区保留策略实现方式与解决方式相同假想1-选项2.

假想2-选项2

通过配置增加并行工数.option("minPartitions", ) For读Stream.

选项最小片段定义最小分区从Kafka读取默认时 Spark使用一对一映射卡夫卡主题分区Spark分区if设置选项最小片段值大于您的Kafka专题分区数,Spark将Kafka专题分区分割成小块

此选项推荐时数据斜率、峰值加载值和流下降置值大于默认结果卡夫卡消费者启动连接Kafka时使用SSL可影响性能

文章有帮助吗