如果我们完全用SODBASE Server搭建集群,没有采用Storm等框架。在Linux下如何操作集群呢,本文给出几个示例供参考
例如,有10台服务器,10.10.1.1 ~ 10.10.1.10
只要在一台安装Server Admin的客户端上,就可以操作整个集群
(1)安装模型
在所有服务器上安装model.soddata,比如都是从消息队列消费数据做流式分析
for i in {1..10}; do ./installmodel.sh -h 10.10.1.$i -P 16111 -f "../example/model.soddata" -u admin -p cep; done
(2)启动模型for i in {1..10}; do ./startmodel.sh -h 10.10.1.$i -P 16111 -m model -v 1.0 -u admin -p cep; done
(3)停止模型
for i in {1..10}; do ./stopmodel.sh -h 10.10.1.$i -P 16111 -m model -v 1.0 -u admin -p cep; done
(4)卸载模型
for i in {1..10}; do ./uninstallmodel.sh -h 10.10.1.$i -P 16111 -m model -v 1.0 -u admin -p cep; done
(5)启动停止集群
首先需要设置JRE_HOME环境变量,可以写到/etc/bashrc文件中或用户目录的.bash_profile目录中
export JRE_HOME="JRE实际目录"
scp覆盖每台机器的.bash_profile文件
启动集群脚本
#!/bin/bash
ip_array=("ip1" "ip2" "ip3" "ip4")
user="username"
password="password"
for ip in ${ip_array[*]}
do
expect -c "
set timeout 1000
spawn ssh -t -p 22 ${username}@${ip} \"nohup sh /data/software/SODBASE-CEP-SERVER-2.0.33/SODBASE-TOMCAT-7.0.56/bin/catalina.sh start\"
expect \" password: \"
send \"${password}\n\"
sleep 2
interact
"
done
停止集群脚本
#!/bin/bash
ip_array=("ip1" "ip2" "ip3" "ip4")
user="username"
password="password"
for ip in ${ip_array[*]}
do
expect -c "
set timeout 1000
spawn ssh -t -p 22 ${username}@${ip} \"sh /data/software/SODBASE-CEP-SERVER-2.0.33/SODBASE-TOMCAT-7.0.56/bin/catalina.sh stop\"
expect \" password: \"
send \"${password}\n\"
sleep 2
interact
"
done