zookeeper三台服务器群起脚本

一、在/bin目录下创建zksh.sh

touch zksh.sh
vi zksh.sh

二、输入shell脚本代码

 

复制代码
#!/bin/bash
case $1 in
"start"){
        for i in hadoop201 hadoop202 hadoop203
        do
        echo ---------- zookeeper $i 启动 ------------
                ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh start"
        done
};;
"stop"){
        for i in hadoop201 hadoop202 hadoop203
        do
        echo ---------- zookeeper $i 停止 ------------
                ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh stop"
        done
};;
"status"){
        for i in hadoop201 hadoop202 hadoop203
        do
        echo ---------- zookeeper $i 状态 ------------
                ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh status"
        done
};;
esac
复制代码

注意:1.三台服务器的名称分别是 hadoop201 hadoop202 hadoop203 ,这里需要根据自身情况更改

           2.ssh中的zkServer.sh文件路径也要根据自身修改

     3.如果在ssh中不添加“source /etc/profile”,有可能汇报如下错误

ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

三、给zksh.sh加权限

chmod 777 zksh.sh

四、群起命令

/bin/zksh.sh start

五、群关闭命令

/bin/zksh.sh stop

六、查看集群状态

/bin/zksh.sh status

 七、注意事项

(1)case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。

(2)双分号“;;”表示命令序列结束,相当于java中的break。

(3)最后的“*)”表示默认模式,相当于java中的default。

  (4) 简单的版本

#!/bin/bash
for i in hadoop1 hadoop2  hadoop3
do
    echo -------------------  $i  ------------------
    ssh $i "zkServer.sh $*" 2> /dev/null
done

注:可加2> /dev/null 将日志过滤掉,不出现在输出台上

2> /dev/null ===>意思是将错误日志输出到“黑洞”(丢弃)

posted @   明明就-  阅读(270)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示