①在/home/wyr/bin目录下创建kafka.sh文件
[wyr@hadoop102 opt]$ cd /home/wyr
[wyr@hadoop102 ~]$ mkdir bin
[wyr@hadoop102 ~]$ cd bin
[wyr@hadoop102 bin]$ vim kafka.sh
在该文件中编写如下代码
#! /bin/bash
# 判断参数个数
if [ $# != 1 ];then
echo -e "请输入参数:\n start 启动kafka集群;\n stop 停止kafka集群;\n status kafka集群状态;\n"
exit;
fi
case $1 in
"start")
for host in hadoop103 hadoop102 hadoop104
do
echo "---------- $1 $host 的kafka ----------"
ssh $host "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
done
;;
"stop")
for host in hadoop103 hadoop102 hadoop104
do
echo "---------- $1 $host 的kafka ----------"
ssh $host "/opt/module/kafka/bin/kafka-server-stop.sh"
done
;;
"status")
for host in hadoop102 hadoop103 hadoop104
do
echo =============== $host ===============
ssh $host jps
done
;;
*)
echo -e "---------- 请输入正确的参数 ----------\n"
echo -e "start 启动kafka集群;\n stop 停止kafka集群;\n status 查看kafka集群状态;" && exit
;;
esac
修改脚本 kafka.sh 具有执行权限
[wyr@hadoop102 bin]$ chmod +x kafka.sh
[wyr@hadoop102 bin]$ pwd
/home/wyr/bin
[wyr@hadoop102 bin]$ sudo cp /home/wyr/bin/kafka.sh /usr/bin/
注意:
停止Kafka集群时,一定要等Kafka所有节点进程全部停止后再停止Zookeeper集群。
因为Zookeeper集群当中记录着Kafka集群相关信息,Zookeeper集群一旦先停止,Kafka集群就没有办法再获取停止进程的信息,只能手动杀死Kafka进程了。