赞
踩
自己搭建了一个三台zookeeper和6台kafka的集群。由于启动和停止集群比较麻烦所以就写了启动和停止集群的脚本。
kfq1-kfq6是我的6台kafka集群。在/etc/hosts 文件下配了映射。
#!/bin/bash
BROKERS="kfq1 kfq2 kfq3 kfq4 kfq5 kfq6"
APPHOME="/opt/apps/kafka_10.1"
APP_NAME=kafka_10.1_epp
for i in $BROKERS
do
echo "Starting ${APP_NAME} on ${i} "
ssh ${i} "source /etc/profile; nohup sh ${APPHOME}/bin/kafka-server-start.sh ${APPHOME}/config/server.properties > /dev/null 2>&1 &"
if [[ $? -ne 0 ]]; then
echo "Starting ${APP_NAME} on ${i} is ok"
fi
done
echo All $APP_NAME are started
exit 0

kafka停止脚本要调用kafka官方的kafka-server-stop.sh脚本。 但是官方的kafka-server-stop.sh 脚本是优点问题,不会真正的停止kafka。所以要先修改kafka-server-stop.sh
修改 bin 下的 kafka-server-stop.sh 文件
PIDS=$(ps ax | grep -i 'kafka\.Kafka' | grep java | grep -v grep | awk '{print $1}')
修改为:
PIDS=$(jps -lm | grep -i 'kafka\.Kafka' | awk '{print $1}')
#!/bin/bash
BROKERS="kfq1 kfq2 kfq3 kfq4 kfq5 kfq6"
APPHOME="/opt/apps/kafka_10.1"
APP_NAME=kafka_10.1_epp
for i in $BROKERS
do
echo "Stopping ${APP_NAME} on ${i} "
ssh ${i} "source /etc/profile;bash ${APPHOME}/bin/kafka-server-stop.sh"
if [[ $? -ne 0 ]]; then
echo "Stopping ${APP_NAME} on ${i} is down"
fi
done
echo All $APP_NAME are stopped
exit 0

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。