一、硬件環境
假設有4台機,IP及主機名如下:
192.168.100.105 c1
192.168.100.110 c2 192.168.100.115 c3 192.168.100.120 c4
^_^ 這里是個trap(陷阱),ZooKeeper的節點,官方建議是單數個。由於ZooKeeper的機制的原因,如果節點是偶數台的話,會有1台是多余的。
所以,即使有4台,但只在其中3台部署ZooKeeper節點。同理,如果有6台機,只部署5個節點即可。
參考資料:https://www.cnblogs.com/liang1101/p/6267125.html
另外,由於ZooKeeper的I/O量並不高,所以管理100台以下的服務器時,建議只使用3個或5個節點即可。如有特殊情況請自行斟酌。
二、搭建分布式ZooKeeper
* 先登錄root賬號再進行以下操作
* 這里只在前3台機部署,也就是c1、c2、c3機
1.下載安裝包
http://zookeeper.apache.org/releases.html#download
這里下載的是apache-zookeeper-3.6.0-bin.tar
* 其中,3.6.0是版本號,如果有新版下載則改成新的版本號,下同。
* 以下步驟在c1、c2、c3機執行
2.配置hosts文件
vim /etc/hosts
加入以下內容:
192.168.100.105 c1 192.168.100.110 c2 192.168.100.115 c3
3.上傳安裝包到服務器
假設上傳到/home/目錄,用rz命令上傳。
cd /home
rz
或直接在服務器下載:
cd /home
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz
4.解壓
tar -xvf apache-zookeeper-3.6.0-bin.tar.gz mv apache-zookeeper-3.6.0-bin zookeeper
5.配置系統環境變量
vim ~/.bashrc
添加以下內容:
export PATH=$PATH:/home/zookeeper/bin
保存退出后,更新環境變量:
source ~/.bashrc
6.創建data和logs目錄
mkdir -pv /home/zookeeper/{data,logs}
7.創建myid
echo 1 > /home/zookeeper/data/myid
* 其中數字是每台機不同,例如第1台是1,第2台是2,第3台是3,第4台是4。
8.編輯zoo.cfg文件
cd /home/zookeeper/conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg
修改屬性或添加內容:
tickTime=2000 initLimit=10 syncLimit=5 clientPort=2181 dataDir=/home/zookeeper/data/ dataLogDir=/home/zookeeper/logs/ server.1=c1:2888:3888 server.2=c2:2888:3888 server.3=c3:2888:3888
9.啟動
zkServer.sh start
10.測試
zkServer.sh status
不同節點的返回結果會不同,其中1個是leader,其余的是follower。
附:利用腳本批量操作
https://www.cnblogs.com/live41/p/15636466.html