问题描述
- Zookeeper集群正常启动
- kafka集群启动之后,一段时间后,有两台机器自动关闭。
下面是我的集群信息
ㅤ | IP | Zookeeper(2181) | Kafka(9092) | 备注 |
redis01 | 192.168.92.145 | √ | √ | 没问题 |
redis02 | 192.168.92.146 | √ | √ | 有问题 |
redis03 | 192.168.92.147 | √ | √ | 有问题 |
redis04 | 192.168.92.148 | ㅤ | √ | 没问题 |
分析
1. 一种情况
- kafka启动之后,一段时间后自动停止,出现这种情况一般是没有使用守护进程 -daemon 启动kafka。
2. 另一种情况
- 上次kafka没有正常退出,即kafka还没有关闭就关闭了zookeeper。
解决
- 我的问题是第二种情况
- 先关闭Kafka
- 确保你的Zookeeper集群是正常启动的
1. 查看Zookeeper
按照网上的解决方法,我查看了我的zookeeper集群,发现没问题!
# 1.Zookeeper集正常启动 # 2.启动Zookeeper终端查看 root@redis02:/usr/local/zookeeper# ./bin/zkCli.sh [zk: localhost:2181(CONNECTED) 0] ls / [kafka, zookeeper] [zk: localhost:2181(CONNECTED) 1] ls /kafka [admin, brokers, cluster, config, consumers, controller_epoch, feature, isr_change_notification, latest_producer_id_block, log_dir_event_notification] [zk: localhost:2181(CONNECTED) 2] ls /kafka/brokers/ids []
2. 查看Kafka
- 查看kafka安装目录中logs文件夹下
server.log
文件
root@redis02:/usr/local/kafka/logs# cat server.log
发现重要的错误信息,记住这个目录
/usr/local/kafka/datas
[2022-03-03 21:06:35,478] WARN [ReplicaManager broker=1] Stopping serving replicas in dir /usr/local/kafka/datas (kafka.server.ReplicaManager) [2022-03-03 21:06:35,485] WARN [ReplicaManager broker=1] Broker 1 stopped fetcher for partitions and stopped moving logs for partitions because they are in the failed log directory /usr/local/kafka/datas. (kafka.server.ReplicaManager) [2022-03-03 21:06:35,485] WARN Stopping serving logs in dir /usr/local/kafka/datas (kafka.log.LogManager) [2022-03-03 21:06:35,487] ERROR Shutdown broker because all log dirs in /usr/local/kafka/datas have failed (kafka.log.LogManager)
- 删除kafka该目录
/usr/local/kafka/datas
内容
💥如果重要文件,一定要备份该文件!💥
- 我这里是四台Kafka机器节点,redis01、redis04没问题。redis02、redis03出现问题的,我删除了该这两台机器中的文件夹
root@redis02:/usr/local/kafka# rm -rf datas/ root@redis03:/usr/local/kafka# rm -rf datas/
- 看到删除数据还是很慌的🥳,不过我删除后,在启动Kafka集群发现数据同步了。敲开心😁!
我到这里就顺利解决问题了。
Tips
网上提示如果有问题,还需要删除zookeeper配置的dataDir目录内容,再重启zookeeper和kafka服务。