共计 2517 个字符,预计需要花费 7 分钟才能阅读完成。
Ubuntu 14.04 下 Storm 集群节点管理脚本示例
需求:
- 实现 nimbus 机脚本控制 supervisor 节点机的开、关、查看
实现思路:
- 实现集群各节点间的网络通信和域名解析
- 建立各节点间的互信机制
- 脚本控制
具体细节:
- 实现集群各节点间的网络通信和域名解析(网络配置 &bind9)
略 - 建立各节点间的互信机制(linux 无秘钥登录技术)
服务器:
A 控制节点 (即 nimbus 机)
B 被控制节点
C 被控制节点 - 脚本控制
准备:
# 编写 supervisors.txt 配置文件供脚本扫描使用 | |
supervisor01 | |
supervisor02 | |
supervisor03 | |
supervisor51 |
batch_scp.sh
主体控制脚本
# | |
# create by zhangqingli | |
# date 2016/9/23DI | |
# | |
# 批量分发 supervisor_shutcls.sh 脚本 | |
# | |
USER=ubuntu | |
LOCAL_DIR=/home/ubuntu/supervisor_manager/shell.bak/supervisor_shutcls.sh | |
SCP_DIR=/home/ubuntu/supervisor_shutcls.sh | |
while read line | |
do | |
scp $LOCAL_DIR $USER@$line:$SCP_DIR | |
ssh -n $USER@$line chmod +x $SCP_DIR | |
done < supervisors.txt |
batch_shutcls.sh
和被控节点的 supervisor_shutcls.sh 配合使用,先执行 batch_scp.sh 将主控节点的 supervisor_shutcls.sh 文件分发到各被控节点
# | |
# create by zhangqingli | |
# date 2016/9/23DI | |
# | |
# 批量关闭 supervisor 服务 | |
# | |
USER=ubuntu | |
CMD="/home/ubuntu/supervisor_shutcls.sh" | |
while read line | |
do | |
ssh -n $USER@$line $CMD | |
done < supervisors.txt |
supervisor_shutcls.sh
文件被分发存放在各被控节点
#!/bin/bash | |
# | |
# create by kinglyjn | |
# date 2016/9/23DI | |
# | |
# 关闭 supervisor 服务,清除 supervisor 之前的运行文件 | |
# | |
STORM_LOCAL=/home/ubuntu/storm-local | |
ip=`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'` | |
hostname=`hostname` | |
echo "========================================[$ip $hostname]========================================" | |
# 关闭 supervisor 服务器 java 进程 | |
echo ">>killall -9 java" | |
killall -9 java | |
# 查看 java 进程状态 | |
echo ">>ps -ef |grep java|grep -v grep" | |
ps -ef |grep java|grep -v grep | |
echo ">>mv storm_local/* to tmp" | |
cd $STORM_LOCAL | |
mv supervisor /tmp/supervisor_$(date +%Y-%m-%d-%H-%M-%S) | |
mv workers /tmp/workers_$(date +%Y-%m-%d-%H-%M-%S) | |
mv nohup.out /tmp/nohup.out_$(date +%Y-%m-%d-%H-%M-%S) | |
echo ">>ls strom_local/*" | |
ls $STORM_LOCAL | |
echo -e "\n\n" |
batch_startup.sh
# | |
# create by zhangqingli | |
# date 2016/9/23DI | |
# | |
# 启动 supervisor 服务 | |
# | |
USER=ubuntu | |
CMD="nohup storm supervisor >/dev/null 2>&1 &" | |
while read line | |
do | |
echo ">>attempt to start $line ..." | |
ssh -n $USER@$line $CMD | |
done < supervisors.txt | |
echo ">>done!" |
batch_status.sh
# | |
# create by zhangqingli | |
# date 2016/9/23DI | |
# | |
# 查看 supervisor 服务进程 和 服务器端口进程 | |
# | |
USER=ubuntu | |
CMD1="jps -m" | |
CMD2="sudo netstat -lntp" | |
while read line | |
do | |
ip=`ssh -n $USER@$line "ifconfig eth0 | grep'inet addr'| awk'{print $2}'| awk -F:'{print $2}'"` | |
hostname=`ssh -n $USER@$line "hostname"` | |
echo "========================================[$ip $hostname]========================================" | |
ssh -n $USER@$line $CMD1 | |
echo $line | |
ssh -n $USER@$line $CMD2 | |
echo $line | |
echo -e "\n" | |
done < supervisors.txt |
Storm 的安装步骤 http://www.linuxidc.com/Linux/2016-08/134184.htm
Kafka-Storm 集成部署 http://www.linuxidc.com/Linux/2016-03/129063.htm
Storm 在 Ubuntu 环境下的单机部署 http://www.linuxidc.com/Linux/2016-03/129060.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-12/138258.htm
正文完
星哥玩云-微信公众号
