概念: 

                 失效副本:   在 ISR 集合之外,也就是处于同步失效或功能失效(比如副本处于非存活状态)的副本统称为失效副本。

                当 ISR 集合中的一个 follower 副本滞后 leader 副本的时间超过此参数指定的值时(replica.lag.time.max.ms 参数的默认值为10000)则判定为同步失败,需要将此 follower 副本剔除出 ISR 集合。 

                这些follower副本处于同步失效状态。 

            

Under Replicated Partition:    具有失效副本的分区即为Under Replicated Partition

offline  partition :                   partition的leader挂了,    状态为OfflinePartition;

         

 什么场景下会出现offline partition?   

The brokers with replicas are down.   

某个节点brokern宕机。  该节点上的leader partition 瞬间挂掉,  立即出现大量offline partition. 随着leader partition的重新选举, offline partition的数量会迅速减少甚至消失。

2 Unclean leader election is disabled and the replicas aren't in sync.

    当参数unclean.leader.election.enable=false 时, 如果某个leader patition 挂掉,但是重新选举leader失败。那么此topic将永远处于offline状态。

   试想: 当某个topic的副本都不在sync列表,  代表副本落后leader 太多。leader挂掉,此时kafka将不允许不在sync列表中的副本partition成为leader. 除非设置 unclean.leader.election.enable=true,但是此时会导致数据丢失。

所以出现offline partition一般是节点故障,但是其它节点副本又落后leader太多导致。

 

1 CDH Kafka实例出现红色告警offline partition 

2  查看CDH 图表实例:发现从4月14号3:20 ,到今天4月15号一直保持offline partitions数量和under replicated数量不变。

3  在命令行查看under replicated parttion 状态的topic

./kafka-topics.sh --describe --zookeeper sz-xx-01:2181   --under-replicated-partitions

通过上述命令 发现, topic relication都是 【90 91 92】 , 但是ISR清单都是只有 【90, 92 】。91 没有在leader分区。

基本断定broker id91所在节点 SZ-XX-02 有问题。

4 在节点 SZ-XX-02 查看broker id 相关日志。 时间起点  4月14号 3:20左右。

/var/log/kafka/kafka-broker-sz-xx-02.log, 找到4月14号3点20左右的信息。

发现当时出现了 磁盘空间不足:  /data2/local/kafaka路径,检查磁盘空间,目前已经有剩余空间了。

5  原因分析:  经上述步骤,基本断定,因为broker 91 磁盘空间空间不足,导致该节点当时的所有副本都变为 under replicated状态。  但是磁盘空间后来变的充足了, 并没有自动恢复。

重启broker id 91,  所有问题解决, under replicated状态的分区1分钟左右慢慢显示正常。offline partition分区也恢复。

91也均衡的变为leader parttion

  

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐