Kafka集群起动完成后自动关闭问题

本文探讨了在Hadoop集群中启动Kafka遇到的自动关闭问题,通过检查Kafka与Zookeeper的依赖关系,发现关闭顺序可能导致的问题,并提出了解决方案,即调整Zookeeper和Kafka的关闭顺序,确保Zookeeper在Kafka完全关闭后再退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好, 我是上白书妖!

知识源于积累,登峰造极源于自律

今天我根据以前所以学的一些文献,笔记等资料整理出一些小知识点,有不当之处,欢迎各位斧正
上白书妖博客
如上如可以看到,hadoop103中的kafka没有启动,因为我是使用群起脚本启动的,我不是很确定到底是没有启动还是启动完成后自动关闭了,所以我一个个启动,进行测试,我先启动start-dfs.sh ,在启动zookeeper,然后在启动kafka集群,如下图:
上白书妖博客
结果发现我hadoop103上的kafka是启动了的,但是过了一会在查看进程的时候发现自动关闭了,如下图:
上白书妖博客
但是发现这次自动停止的是我的hadoop104上的kafka,这就卧槽了

所以我检查了我kafka的的myid,想看看是不是hadoop103的myid和hadoop104myid相同导致二者不可同时存在,结果当然不是,这种低级错误我还是不会犯的,如图:
上白书妖博客
上白书妖博客

原因是:

因为每次启动都得先启动zookeeper,因为kafka启动都依赖zookeeper,所以想是不是问题出在依赖的zookeeper上?因为我查了kafka的日志,也没报错,所以我想是不是kafka依赖zookeeper这一环节出了问题.后来我想了一下,我怀疑是我先关闭了zookeeper再关了kafka导致了这种问题,或者我刚关闭kafka集群就关了zookeeper的脚本出了问题,会不会是kafka刚关闭,但hadoop103
,hadoop104并没有完全关闭呢?
就是因为kafka103 kafka104整个退出的比较慢,但是kafka还没有退出掉,zookeeper就已经退出掉了,就会出现下一次kafka启动不了了.因为kafka在退出的时候,他会在zookeeper底下的ids下的0.1.2这种东西删掉,会把这种临时节点删掉.如果你zookeeper先退出,但是zookeeper不会去删除这种西,zookee
per下次启动时,这种东西还会被使用,然后你再去启动kafka,kafka再去拿着id去注册,发现已经存在了,所以就会起不起来.

解决方式:
删除你启动不起来的那个虚拟机上zookeeper上的version-2,如图
上白书妖博客
重新启动集群:
上白书妖博客

查看是否启动:
上白书妖博客

上白书妖结束寄语:

知识源于积累,登峰造极源于自律

Apache Kafka是一个分布式流处理平台,用于构建实时数据管道和流应用。为了管理和操作Kafka集群,通常会编写启动和停止脚本来自动化这个过程。以下是创建Kafka集群启动和停止脚本的一些基本步骤: **启动脚本(Kafka启动.sh)**: 1. **检查环境**: 确保所有依赖已安装,如Zookeeper、JDK等。 2. **设置环境变量**: 配置Kafka_HOME指向安装目录,设置其他环境变量如KAFKA_OPTS(例如内存限制)。 3. **启动服务**: 使用`bin/kafka-server-start.sh`命令启动Kafka broker节点,可以指定配置文件路径。 4. **日志监控**: 可能还需要添加对日志文件和进程状态的检查。 **停止脚本(Kafka停止.sh)**: 1. **停止服务**: 使用`bin/kafka-server-stop.sh`命令优雅地关闭broker节点。 2. **确认停止**: 检查Kafka是否完全停止,包括清理网络连接和停止后台线程。 3. **清理资源**: 如果有持久化数据,确保它们已经妥善清理。 **例子脚本片段**(假设脚本名为kafka_start_stop.sh): ```bash #!/bin/bash # 启动 start_kafka() { if [ ! -d "$KAFKA_HOME/logs" ]; then mkdir -p $KAFKA_HOME/logs fi export KAFKA_OPTS="-Dlog.dirs=$KAFKA_HOME/logs" echo "Starting Kafka..." bin/kafka-server-start.sh ${KAFKA_CONFIG_DIR}/server.properties & sleep 5 # 等待服务器启动完成 } # 停止 stop_kafka() { echo "Stopping Kafka..." kill $(ps aux | grep kafka-server-start | awk '{print $2}') wait echo "Kafka stopped." } # 脚本控制 case "$1" in start) start_kafka ;; stop) stop_kafka ;; *) echo "Usage: ./kafka_start_stop.sh {start|stop}" exit 1 ;; esac ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值