Drollery Medieval drollery of a knight on a horse

🏆 欢迎来到本站: https://xuchangwei.com/希望这里有你感兴趣的内容

flowery border with man falling
flowery border with man falling

trouble-kafka

ISR问题

现象

#显示rebalancing,在数据平衡
# ./kafka-consumer-groups.sh --describe --bootstrap-server localhost:9092  --describe  --group ParserKafkaPipeline | grep -e ParserBody | sort
Warning: Consumer group 'ParserKafkaPipeline' is rebalancing.

#日志显示, ISR不满足最小设置需求
org.apache.kafka.common.errors.NotEnoughReplicasException: The size of the current ISR Set(0, 3, 5) is insufficient to satisfy the min.isr requirement of 4 for partition __consumer_offsets-37

#导致无法消费

解决

min.insync.replicas=1 #将参数值由4改为默认值1
#该参数用于控制ISR集合的最小副本数量,保证最小副本要满足要求


min.insync.replicas
Type:   int
Default:        1
Valid Values:   [1,...]
Importance:     high
Update Mode:    cluster-wide

#动态更新模式
read-only :需要重启代理才能更新
per-broker :可以为每个经纪人动态更新
cluster-wide :可以作为集群范围内的默认值动态更新。也可以更新为每个经纪商的测试值。

#动态更新
bin/kafka-configs.sh  --bootstrap-server localhost:9092  --entity-type brokers --entity-default --alter --add-config min.insync.replicas=1

参考:brokerconfigs_min.insync.replicas

brorker id异常

问题现象

  • 机器查看负载40左右,且服务器无法登录,但可以ping通
  • 事务任务出现问题
  • 异常broker id 占用副本资源

问题修复

将所有事务相关的topic数据迁到别的机器。服务恢复正常。

cd /usr/hdp/3.1.0.0-78/kafka

# 1. 先整理一个topic的json文件 a.json:
#格式:{"topics": [{"topic": "xxx"}], "version":1}
tn=yzcrm
echo '{"topics": [{"topic": "'$tn'"}], "version":1}' >a.json

# 2. 生成预执行计划:
#注意点:--broker-list 为要重平衡到哪些broker id上
bin/kafka-reassign-partitions.sh --zookeeper 172.18.50.179:2181 --topics-to-move-json-file a.json --broker-list "1007,1008,1009,1011,1012,1013,1014,1015,1016,1017" --generate
# 修改生成的计划

# 3. 执行数据重平衡:
bin/kafka-reassign-partitions.sh --zookeeper 172.18.50.179:2181 --reassignment-json-file a-1.json --execute

# 4. 查看平衡进展状态:
bin/kafka-reassign-partitions.sh --zookeeper 172.18.50.179:2181 --reassignment-json-file a-1.json --verify

副本数

问题描述

kafka集群节点挂掉致数据缺失

问题原因 default.replication.factor 默认值为1,副本数为1,会有单点故障

解决:

default.replication.factor 3 默认创建topic的副本数。也可通过 –replication-factor,在创建的时候指定。应改为3

#动态修改
bin/kafka-configs.sh  --bootstrap-server localhost:9092  --entity-type brokers --entity-default --alter --add-config default.replication.factor=3

#查看
bin/kafka-configs.sh --describe --bootstrap-server localhost:9092 --entity-type brokers


#动态更新模式
read-only :需要重启代理才能更新
per-broker :可以为每个经纪人动态更新
cluster-wide :可以作为集群范围内的默认值动态更新。也可以更新为每个经纪商的测试值。

如
default.replication.factor
Type:   int
Default:        1
Valid Values:   
Importance:     medium
Update Mode:    read-only #重启才能更新

参考:brokerconfig