泰涨知识 | Shell脚本之一键启动和关闭Zookeeper脚本

ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

ZooKeeper的架构通过冗余服务实现高可用性。Zookeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布订阅、负载均衡、命名服务、分布式协调通知、集群管理、Master选举、分布式锁和分布式队列等功能。

Zookeeper模型图如下:

ZooKeeper集群由一组Server节点组成,这一组Server节点中只存在一个Leader的节点,其他节点都为Follower。

启动时选举出leader。

ZooKeeper使用自定义的原子消息协议,保证了整个系统中的节点数据的一致性。

Leader节点在接收到数据变更请求后,先写磁盘再写内存。

所以Zookeeper集群在配置好之后,咱们在启动的时候需要每一个节点都去启动一次,咱们只有几个集群的情况下是可行的,但是集群一旦达到几百上千个,咱们还能单独的去启动Zookeeper集群吗?答案是肯定不可能的,所以这时就需要使用Shell命令一键启动Zookeeper集群了。

具体怎么设置一键启动Zookeeper集群呢,具体操作步骤如下:

0 1

设置一键启动Zookeeper 脚本

1、进入目录:cd /usr/local/zookeeper/zookeeper-3.4.6/bin/

2、编写一键启动配置文件:vim zkStart-all.sh,添加shell脚本如下:

复制代码
for host in hadoop slave1 slave2 slave3do        ssh $host "source /etc/profile;nohup /usr/local/zookeeper/zookeeper-3.4.6/bin/zkServer.sh start "        echo "$host zk is running"done

3、写好后保存,为脚本添加执行权限:chmod 777 zkStart-all.sh

4、进入目录(或任意目录):cd /usr/local/zookeeper/zookeeper-3.4.6/bin/

5、一键启动:./zkStart-all.sh或者sh zkStart-all.sh(任意目录启动用这个命令)

6、查看状态:jps

7、执行效果如下图:

0 2

设置一键停止Zookeeper 脚本

1、进入目录:cd /usr/local/zookeeper/zookeeper-3.4.6/bin/

2、编写一键启动配置文件:vim zkStop-all.sh,添加Shell脚本如下:

复制代码
for host in hadoop slave1 slave2 slave3do        ssh $host "source /etc/profile;/usr/local/zookeeper/zookeeper-3.4.6/bin/zkServer.sh stop"        echo "$host zk is stopping"done

3、写好后保存,为脚本添加执行权限:chmod 777 zkStop.sh

4、进入目录(或任意目录):cd /usr/local/zookeeper/zookeeper-3.4.6/bin/

5、一键启动:./zkStop-all.sh 或者:sh zkStop-all.sh(任意目录关闭用这个命令)

6、查看状态:jps

7、执行效果如下图:

0 3

技能拓展

以上两个shell脚本在执行完成后需要查看节点状态,但是每台节点都需要查看则要输入三次jps命令,这个过程也比较麻烦,同时也比较耽误时间,那么我们是否可以用脚本完成jps命令查看节点状态的操作?答案也是肯定的,都可以使用Shell脚本完成节点状态的查看,但是由于jps命令是Java提供的,所以,咱们在编写脚本的时候,需要找到JDK的安装目录编写到脚本里面去,具体Shell脚本命令如下:

复制代码
#!/bin/bashecho '---------------------查看集群状态---------------'for i in hadoop slave1 slave2 slave3#----------------------------->这几个是主机名do        echo ${i} '的节点状态'        ssh ${i} /usr/local/java/jdk1.8.0_161/bin/jpsdone

执行效果如下图:

相关推荐
SelectDB3 小时前
云数仓费钱?用 SelectDB Serverless 三步配出秒级弹性,最高降本 70%
数据库·云原生·数据分析
长不胖的路人甲6 小时前
微服务限流
微服务·云原生·架构
ai_coder_ai7 小时前
编写自动化脚本,在自己后端服务中使用云原生Baas服务进行设备相关操作
数据库·云原生·自动化
bukeyiwanshui8 小时前
20260626 k8sControllers介绍
云原生·容器·kubernetes
我登哥MVP8 小时前
Hadoop成长史-从Nutch子项目到大数据生态王者
java·大数据·hadoop·分布式·云原生·云计算
能有时光8 小时前
] K8s 核心组件使用指南
云原生·容器·kubernetes
凯云-金山HIL9 小时前
打破仿真孤岛:基于凯云SimuRTS的分布式联合仿真系统架构深度解析
自动化测试·分布式·系统架构·etest·半实物仿真
我登哥MVP10 小时前
HDFS硬核拆解-读写Pipeline与Java实战
java·hadoop·hdfs·云原生·云计算
云烟成雨TD10 小时前
Kubernetes 系列【13】控制器:可视化操作 Deployment
云原生·容器·kubernetes
Database_Cool_19 小时前
HTAP数据库详解_阿里云PolarDB-X一体化行列存实现实时分析
分布式·阿里云·云计算