编写zookeeper集群自动化启动脚本

zookeeper集群自动启动脚本

我们有三台服务器分别是:

node1:192.168.159.128

node2:192.168.159.130

node3:192.168.159.131

我们发现每次启动zookeeper集群都要在每一个服务器中启动一遍,如果集群很大,开启zookeeper都将成为一个很麻烦的事情,我们考虑在某一个服务器里写一个脚本,让它可以自动的启动所有zookeeper集群。

我们先停掉3个节点的 zookeeper服务。

我们可以通过ssh实现上述需求。原理:我们可以在一台服务器通过ssh访问其他服务器及操作:ssh 192.168.159.130 /usr/local/zookeeper-3.4.14/bin/zkServer.sh start

原理剖析:

1.我们在node1中首先配置免密ssh登录node2和node3

在node1,首先生成密钥

ssh-keygen

2.将密钥拷到node2和node3

ssh-copy-id 192.168.159.130

ssh-copy-id 192.168.159.131

3.分别在node2和node3中验证是否得到node1的密钥 authorized_keys

ll.sh

4.验证发现node2和node3中都有node1的密钥。此时node1实现了对node2和node3的免密登录

5.在node1中首先开启自己的zookeeper,然后依次通过ssh远程开启node2和node3的zookeeper。经验证可以成功开启。

node1:

查看node1的节点状态:

查看node2和node3的节点状态

通过实际操作验证了上述原理的正确性。这样我们就可以基于上述原理在node1中编写同时开启3个节点的脚本。

1.在root下创建一个文件夹bin

mkdir bin

2.

2.进入bin中创建start.sh,并编写

cd bin

touch start.sh

vi start.sh

3.编写文件

#!/bin/sh

echo "start zookeeper.."

for i in 128,130,131

do

ssh 192.168.159.$i /usr/local/zookeeper-3.4.14/bin/zkServer.sh start

done

4.启动脚本,看是否能启动集群

集群全部启动了!!但是我们发现还是要输入一次密码,原来是自己连接自己也需要配置密钥。这里大家自己配一下就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章