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.啓動腳本,看是否能啓動集羣
集羣全部啓動了!!但是我們發現還是要輸入一次密碼,原來是自己連接自己也需要配置密鑰。這裏大家自己配一下就可以了。