編寫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.啓動腳本,看是否能啓動集羣

集羣全部啓動了!!但是我們發現還是要輸入一次密碼,原來是自己連接自己也需要配置密鑰。這裏大家自己配一下就可以了。

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