首页 > 其他分享 >kafka offset 过期处理策略

kafka offset 过期处理策略

时间:2024-11-14 18:57:07浏览次数:1  
标签:scala 过期 kafka streaming offset apache org spark

kafka offset 过期处理策略

现象:

User class threw exception: org.apache.spark.SparkException: Job aborted due to stage failure: Task 2 in stage 0.0 failed 4 times, most recent failure: Lost task 2.3 in stage 0.0 (TID 29, kafka2, executor 2): org.apache.kafka.clients.consumer.OffsetOutOfRangeException: Offsets out of range with no configured reset policy for partitions: {xxx_topic-3=2305398463}
at org.apache.kafka.clients.consumer.internals.Fetcher.parseCompletedFetch(Fetcher.java:970)
at org.apache.kafka.clients.consumer.internals.Fetcher.fetchedRecords(Fetcher.java:490)
at org.apache.kafka.clients.consumer.KafkaConsumer.pollForFetches(KafkaConsumer.java:1259)
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1187)
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1115)
at org.apache.spark.streaming.kafka010.InternalKafkaConsumer.poll(KafkaDataConsumer.scala:200)
at org.apache.spark.streaming.kafka010.InternalKafkaConsumer.get(KafkaDataConsumer.scala:129)
at org.apache.spark.streaming.kafka010.KafkaDataConsumer$class.get(KafkaDataConsumer.scala:36)
at org.apache.spark.streaming.kafka010.KafkaDataConsumer$NonCachedKafkaDataConsumer.get(KafkaDataConsumer.scala:218)
at org.apache.spark.streaming.kafka010.KafkaRDDIterator.next(KafkaRDD.scala:261)
at org.apache.spark.streaming.kafka010.KafkaRDDIterator.next(KafkaRDD.scala:229)
at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:462)
at scala.collection.Iterator$class.foreach(Iterator.scala:893)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)

原因:

消费太慢导致topic里面的数据挤压,太多导致topic中的数据已经过期,但是groupid绑定的offset已久是已经过期的数据offset导致 Offsets out of range 。

处理策略

掰正Groupid,绑定Topic的 offset,保证offset可用,同时在上游spark-streaming任务开启背压优化。

./bin/kafka-consumer-groups.sh --bootstrap-server xxx.host  --group tf-user-new-tag2 --topic xxx_topic --execute --reset-offsets --to-earliest                                   

标签:scala,过期,kafka,streaming,offset,apache,org,spark
From: https://www.cnblogs.com/tyxy/p/18546586

相关文章

  • kafka的零拷贝详解
    什么是kafka中的零拷贝问题1.传统的IO拷贝传统的一次I/O流程包括应用程序发起读(read)或写(write)请求,操作系统将请求传递给设备驱动程序,驱动程序与硬件设备通信执行操作,设备完成后返回结果,操作系统再将结果返回给应用程序,应用程序根据结果进行处理。整个过程通常是同步的,应用程......
  • kafka(启动集群,使用spring方法,自定义配置)
    ApacheKafka是一个开源的分布式流处理平台,最初由LinkedIn开发,后来成为Apache项目。Kafka主要用于高吞吐量、低延迟的实时数据流处理,常用于日志收集、实时分析、消息传递等场景。以下是关于Kafka的详细讲解:一、理论知识1.Kafka的基本概念Kafka是一个分布式的......
  • 云消息队列 Kafka 版全面升级:经济、弹性、稳定,成本比自建最多降低 82%
    作者:娜米本文整理于2024年云栖大会阿里云智能集团产品专家张凤婷带来的主题演讲《云消息队列Kafka版全面升级:经济、弹性、稳定》云原生消息产品十年磨一剑消息产品的演进可以大致分为三个主要阶段:起步阶段:初期,市场上缺乏能够支撑大规模业务场景的优秀消息产品,无论是商......
  • 大数据面试题--kafka夺命连环问(前15问)
    目录1、kafka消息发送的流程?2、Kafka的设计架构你知道吗3、Kafka分区的目的?4、你知道Kafka是如何做到消息的有序性?5、ISR、OSR、AR是什么?6、Kafka在什么情况下会出现消息丢失?7、怎么尽可能保证Kafka的可靠性?8、Kafka中如何做到数据唯一,即数据去重?9、生产者如......
  • 大数据面试题--kafka夺命连环问(后10问)
    目录16、kafka是如何做到高效读写?17、Kafka集群中数据的存储是按照什么方式存储的?18、kafka中是如何快速定位到一个offset的。19、简述kafka中的数据清理策略。20、消费者组和分区数之间的关系是怎样的?21、kafka如何知道哪个消费者消费哪个分区?22、kafka消费者的消费分......
  • kafka是如何做到高效读写
    1)Kafka本身是分布式集群,可以采用分区技术,并行度高2)读数据采1)Kafka本身是分布式集群,可以采用分区技术,并行度高2)读数据采用稀疏索引,可以快速定位要消费的数据。(mysql中索引多了之后,写入速度就慢了)3)顺序写磁盘Kafka的producer生产数据,要写入到log文件中,写的过程是一......
  • kafka中的数据清理策略
    Kafka中默认的日志(这个地方是数据的意思,就是Segment)保存时间为7天,可以通过调整如下参数修改保存时间。log.retention.hours,最低优先级小时,默认7天。log.retention.minutes,分钟。--如果设置了该值,小时的设置不起作用。log.retention.ms,最高优先级毫秒。--如果设置了......
  • kafka消费者的消费分区策略有哪些,默认是哪个?
    Kafka消费者的分区分配策略主要有以下几种,分别决定了如何将多个分区分配给消费者:1.Range(范围分配)描述:将分区连续地分配给消费者。每个消费者负责一段连续的分区。如果有多个消费者,那么消费者会按照顺序被分配一段连续的分区。适用场景:适用于消费者之间的数据量差异较小,且需......
  • kafka面试题(二)
    1、kafka是如何做到高效读写1)Kafka 本身是分布式集群,可以采用分区技术,并行度高 2)读数据采用稀疏索引,可以快速定位要消费的数据。(mysql中索引多了之后,写入速度就慢了) 3)顺序写磁盘4)页缓存 + 零拷贝技术2、Kafka集群中数据的存储是按照什么方式存储的?缓存存储;日志存......
  • kafka监控
    kafka监控部署kafka使用Prometheus、Grafana和kafka_exporter来构建kafka指标监控问题背景在实时场景下,对于数据积压是很常见的,我们更希望如何去快速知道有没有数据积压,目前消费了多少,速度怎么样,趋势如何。可以使用原生命令kafka-consumer-groups.sh--bootstrap-servernode01......