检查一下kafka配置文件 config/server.properties
zookeeper.connect=bigdata111:2181, bigdata112:2181, bigdata113:2181
去zookeeper中
进入zk的客户端中查看kafka的节点 ls /brokers/ids 如果此时kafka没起来 ids下有【0,1,2,…】 说明节点被占用了 ****kafka启动细节点:**** Kafka在启动时,每个kafka都会去zookeeper上面的节点注册 Kafka正常关闭的情况下,会将zookeeper上面注册的节点删除掉 Kafka下次启动还会去重新注册,重新注册发现节点已被注册,导致无法开启
解决方案:
delete /brokers/ids
再次查看zookeeper 客户端的节点情况
ls /brokers/ids
分析上述问题出现情况:
1、 关闭集群时是直接关机,或是没按正常流程关闭
2、 卸载kafka时,残留的节点信息,未清除
因为使用java客户端 spring-kafka是 2.12的版本,服务器broker是 2.11 的版本,进行 *** 作broker时,在 zookeeper中创建 /kafka-acl/DelegationToken 节点,导致服务启不来,解决办法是 java客户制成与 broker版本一致 , 删除 zk 中的 /kafka-acl/DelegationToken , 就可以正常启动kafka重装时,需要在zookeeper删除元数据信息
需要使用 bin/zkCli.sh 命令进入zookeeper,然后使用 rmr 命令删除以下内容即可
admin:删除的topic brokers :集群节点信息,topic信息 cluster:kafka集群信息 config:配置信息 consumers:消费者信息 controller_epoch:集群经过了多少次controller选取 isr_change_notification kafka-acl kafka-acl-changes kafka-acl-extended kafka-acl-extended-changes latest_producer_id_block log_dir_event_notification producer:生产者信息 controller:控制节点的broker.idbroker中的topic损坏需要重建
//备份 mkdir bak mkdir bak/202006001pecuheart-0 mkdir bak/202006001pecuheart-1 mkdir bak/202006001pecuheart-2 cp -r kafka-logs/202006001pecuheart-0/ bak/ cp -r kafka-logs/202006001pecuheart-1/ bak/ cp -r kafka-logs/202006001pecuheart-2/ bak/ //删除kafka正在处理数据的topic rm -rf 202006001pecuheart-0 rm -rf 202006001pecuheart-1 rm -rf 202006001pecuheart-2 //删除kafka在zk上存的节点 bin/zkCli.sh -server 10.196.7.135:2181 ls /brokers/topics rmr /brokers/topics/202006001pecuheart //重建topic bin/kafka-topics.sh --zookeeper 10.196.7.135:2181,10.196.7.136:2181,10.196.7.137:2181 --create --replication-factor 3 --partitions 3 --topic 202006001pecuheart
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)