本脚本命令主要是方便集群的管理,参考网上看过的视频,整理的,希望简化集群的管理;
本脚本包含的是:zookeeper、kafka、hadoop、druid集群的管理脚本,再加一个集群jps脚本;
注意:
(1)我的集群的三台服务器的主机名,都相应了改为了:master,query和data;
具体的修改文件是 vim /etc/hosts;
(2)保证当前用户对所写的脚本有执行权限;
(3)执行脚本的命令前必须加上 source /etc/profile; ,保证引入java等一些环境变量;
1.zookeeper集群的启动(停止)脚本
#!/bin/bash
case $1 in
"start"){
for i in master query data
do
echo "********************$i**************************"
ssh $i 'source /etc/profile; sh /home/apps/zookeeper/bin/zkServer.sh start'
done
};;
"stop"){
for i in master query data
do
echo "********************$i**************************"
ssh $i 'source /etc/profile; sh /home/apps/zookeeper/bin/zkServer.sh stop'
done
};;
esac
~
脚本的名称是:1_zookeeper_start_stop.sh
启动时:sh 1_zookeeper_start_stop.sh start
停止时:sh 1_zookeeper_start_stop.sh start
2.kafka集群的启动(停止)脚本
#!/bin/bash
case $1 in
"start"){
for i in master query data
do
echo "********************$i**************************"
ssh $i 'source /etc/profile;/home/apps/kafka/bin/kafka-server-start.sh -daemon /home/apps/kafka/config/server.properties >>/home/apps/kafka/kafka.log 2>&1'
done
};;
"stop"){
for i in master query data
do
echo "********************$i**************************"
ssh $i '/home/apps/kafka/bin/kafka-server-stop.sh /home/apps/kafka/config/server.propertiesi >>/home/apps/kafka/kafka.log 2>&1'
done
};;
esac
脚本的名称是:2_kafka_start_stop.sh
启动时:sh 2_kafka_start_stop.sh start
停止时:sh 2_kafka_start_stop.sh start
3.hadoop集群的启动(停止)脚本
#!/bin/bash
case $1 in
"start"){
for i in master
do
echo "********************$i**************************"
ssh $i 'source /etc/profile; sh /home/apps/hadoop/sbin/start-all.sh'
done
};;
"stop"){
for i in master
do
echo "********************$i**************************"
ssh $i 'source /etc/profile; sh /home/apps/hadoop/sbin/stop-all.sh'
done
};;
esac
脚本的名称是:3_hadoop_start_stop.sh
启动时:sh 3_hadoop_start_stop.sh start
停止时:sh 3_hadoop_start_stop.sh start
hadoop集群的启动只需要在master执行就可以;
4.apache druid集群的启动(停止)脚本
#!/bin/bash
case $1 in
"start"){
echo "********************start master*************************"
ssh master 'source /etc/profile;/home/apps/druid/bin/start-cluster-master-no-zk-server -daemon >>/home/apps/druid/master.log 2>&1'
echo "********************start query*************************"
ssh query 'source /etc/profile;/home/apps/druid/bin/start-cluster-query-server -daemon >>/home/apps/druid/query.log 2>&1'
echo "********************start data*************************"
ssh data 'source /etc/profile;/home/apps/druid/bin/start-cluster-data-server -daemon >>/home/apps/druid/data.log 2>&1'
};;
"stop"){
echo "********************master stop*************************"
ssh master 'source /etc/profile;/home/apps/druid/bin/service --down'
echo "********************query stop*************************"
ssh query 'source /etc/profile;/home/apps/druid/bin/service --down'
echo "********************data stop*************************"
ssh data 'source /etc/profile;/home/apps/druid/bin/service --down'
};;
esac
脚本的名称是:4_druird_start_stop.sh
启动时:sh 4_druird_start_stop.sh start
停止时:sh 4_druird_start_stop.sh start
5.看集群的进程jps
#!/bin/bash
for i in root@master root@query root@data
do
echo "********************$i**************************"
ssh $i '/home/jdk1.8/bin/jps'
done
其中,“4.apache druid集群的启动(停止)脚本” ,启动时必须在执行到每个节点是ctrl+C,手工退出一下;这个,那位大大告诉我怎么改进下。