记一次Kafka不能消费故障

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lingbo229/article/details/83538581

背景:

kafka集群机器升级,使得部分spark Streaming不能消费读取数据

问题原因:

kafka会自动创建一个默认的topic __consumer_offsets,用于保存offset到Kafka系统

由于我们集群kafka节点有7个,当逐渐的下架上架机器后,使得__consumer_offsets  Partition 出现Leader为-1

Kafka将直连Kafka的消费信息记录到了__consumer_offset这个topic中,虽然这个topic在我们的集群中复制因子为3,但当partition所在的3个副本所在的机器都下架后,便会出现Leader为-1的情况 

解决方法:

方法一:设置auto.create.topics.enable =true,删除topic __consumer_offset即可。 (这种方法只适合于offset存储到外部系统的情况,否则会丢失offset信息),删除后,重启Kafka,会自动重建__consumer_offset,Spark Streaming消费读取数据正常。

方法二:事前预防,在做Kafka集群升级的时候,需要对__consumer_offset也进行数据迁移,迁移方法见

https://blog.csdn.net/lingbo229/article/details/83309208

猜你喜欢

转载自blog.csdn.net/lingbo229/article/details/83538581