说明:本脚本基于SSH服务器免密登录,如集群未配置SSH,参照另一篇博客:《服务器设置免密登录》
启动脚本
在zookeeper集群和kafka集群中间的停顿时间酌情设置
start-kafka-cluster.sh
#!/bin/bash
brokers="192.168.50.15 192.168.50.16 192.168.50.17"
KAFKA_HOME="/usr/local/kafka_2.12-2.8.0"
KAFKA_NAME="kafka_2.12-2.8.0"
ZOOKEEPER_NAME="zookeeper"
echo "INFO : Begin to start kafka cluster ..."
for broker in $brokers
do
echo "INFO : Starting ${ZOOKEEPER_NAME} on ${broker} ..."
ssh ${broker} -C "source /etc/profile; sh ${KAFKA_HOME}/bin/zookeeper-server-start.sh -daemon ${KAFKA_HOME}/config/zookeeper.properties"
if [[ $? -eq 0 ]]; then
echo "INFO:[${broker}] Start successfully"
fi
done
echo "INFO:zookeeper cluster starts successfully !"
sleep 5
for broker in $brokers
do
echo "INFO : Starting ${KAFKA_NAME} on ${broker} ..."
ssh ${broker} -C "source /etc/profile; sh ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties"
if [[ $? -eq 0 ]]; then
echo "INFO:[${broker}] Start successfully"
fi
done
echo "INFO:Kafka cluster starts successfully !"
关闭脚本
stop-kafka-cluster.sh
#!/bin/bash
brokers="192.168.50.15 192.168.50.16 192.168.50.17"
KAFKA_HOME="/usr/local/kafka_2.12-2.8.0"
KAFKA_NAME="kafka_2.12-2.8.0"
ZOOKEEPER_NAME="zookeeper"
echo "INFO : Begin to stop kafka cluster ..."
for broker in $brokers
do
echo "INFO : Stoping ${KAFKA_NAME} on ${broker} ..."
ssh ${broker} -C "source /etc/profile; sh ${KAFKA_HOME}/bin/kafka-server-stop.sh"
if [[ $? -eq 0 ]]; then
echo "INFO : Shut down ${KAFKA_NAME} on ${broker} is down"
fi
done
echo "INFO:Kafka cluster stop successfully !"
sleep 5
echo "INFO : Begin to stop zookeeper cluster ..."
for broker in $brokers
do
echo "INFO : Stoping ${ZOOKEEPER_NAME} on ${broker} ..."
ssh ${broker} -C "source /etc/profile; sh ${KAFKA_HOME}/bin/zookeeper-server-stop.sh"
if [[ $? -eq 0 ]]; then
echo "INFO:[${broker}] zookeeper Stop successfully"
fi
done
echo "INFO:zookeeper cluster stop successfully !"
|