一、前置准备
CentOS7、jdk1.8、zookeeper-3.5.7、kafka-2.4.1
想要完成本期视频中所有操作,需要以下准备:
二、脚本源码
#!/bin/bash
#作者:小康
#描述:Kafka集群启动停止以及查看状态脚本
#微信公众号:小康新鲜事儿
USAGE="使用方法:sh kf.sh start/stop/status"
if [ $# -ne 1 ];then
echo $USAGE
exit 1
fi
SHELL_ZK=/home/xiaokang/bin/zk.sh
SHELL_CALL=/home/xiaokang/bin/call-cluster.sh
KAFKA_HOME=/opt/software/kafka-2.4.1
NODES=("hadoop01" "hadoop02" "hadoop03")
case $1 in
"start")
#启动zookeeper集群
$SHELL_ZK start
sleep 4s
#开始启动kafka集群
for NODE in ${NODES[*]};do
echo "--------$NODE启动kafka集群--------"
ssh $NODE "$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties"
done
;;
"stop")
#开始停止kafka集群
for NODE in ${NODES[*]};do
echo "--------$NODE停止kafka集群--------"
ssh $NODE "$KAFKA_HOME/bin//kafka-server-stop.sh"
done
#kafka停止比较慢,延迟几秒再停止zookeeper集群,不然zookeeper集群停止后kafka进程就无法停止了
sleep 11s
#停止zookeeper集群
$SHELL_ZK stop
;;
"status")
echo "--------查看kafka集群状态--------"
$SHELL_CALL jps
;;
*)
echo $USAGE
;;
esac
echo "----------------------------------------------------------------------------------------"
echo "--------kf.sh脚本执行完成!--------"
echo -e "--------微信公众号:\033[5;31m 小康新鲜事儿 \033[0m--------"
echo "--------小康老师微信:k1583223--------"
echo "--------公众号内回复【大数据】,获取系列教程及随堂文档--------"
echo "----------------------------------------------------------------------------------------"
脚本下载地址:https://github.com/xiaokangxxs/notebook/blob/master/docs/Shell/kf.sh
三、测试使用
# 修改脚本权限
[xiaokang@hadoop01 bin]$ chmod 777 kf.sh
执行方式:
# 方式一
[xiaokang@hadoop01 bin]$ ./kf.sh start
# 方式二
[xiaokang@hadoop01 bin]$ sh kf.sh start
# 方式三
# 1.将shell脚本所在目录配置为环境变量(/etc/profile),记得source生效
export SHELL_HOME=/home/xiaokang/bin
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZOOKEEPER_HOME}/bin:${HIVE_HOME}/bin:${HBASE_HOME}/bin:${KYLIN_HOME}/bin:${KAFKA_HOME}/bin:${SCALA_HOME}/bin:${SCALA_HOME}/sbin:${SPARK_HOME}/bin:${SHELL_HOME}/:$PATH
# 2.在任意目录都可以使用自己编写的shell脚本
[xiaokang@hadoop01 ~]$ kf.sh start
使用脚本进行启动和查看状态测试,成功如下图所示: