一、zookeeper安裝
1、基本環境:vbox+centos7
2、准備工作:
安裝java環境:yum -y install java
安裝wget:yum -y install wget
(可選)安裝vim:yum -y install vim*
3、下載zookeeper
進入下載目錄: cd /usr/local
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
其他下載地址:http://us.mirrors.quenda.co/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
下載成功后,解壓到當前文件夾 :tar -zxvf zookeeper-3.4.14.tar.gz,效果如下:
4、問題說明:若解壓失敗報:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
可通過命令查看下載文件類型 :file zookeeper-3.4.14.tar.gz,正確類型如下:
若不是壓縮文件類型,可刪除下載文件,重新找其他地址下載
二、zookeeper單機啟動
1、修改配置
進入解壓文件,拷貝示例配置文件,作為默認配置
cd zookeeper-3.4.14
cp conf/zoo_sample.cfg conf/zoo.cfg
編輯zoo.cfg文件:vim conf/zoo.cfg
修改dataDir值為:/usr/local/zookeeper-3.4.14/data
添加:dataLogDir=/usr/local/zookeeper-3.4.14/log
添加:server.1=本機ip:2888:3888
2888是該server和集群中的leader通信端口,3888是選舉leader的端口
創建dataDir目錄:mkdir data
創建dataLogDir目錄:mkdir log
創建myid文件:touch data/myid
編輯myid文件:vim data/myid ,保存數據 1
2、啟用zookeeper服務
啟用服務:bin/zkServer.sh start
查看服務啟用狀態:bin/zkServer.sh status
單機模式:standalone
3、打開本地客戶端
bin/zkCli.sh
或者 bin/zkCli.sh -server localhost:2181 ,
或者 bin/zkCli.sh -server 127.0.0.1:2181
4、訪問遠程zookeeper服務報錯問題:
解決:
方法一、服務端防火牆關閉:systemctl stop firewalld
方法二、開放zookeeper相關端口
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
三、zookeeper集群部署
1、准備3台服務器或者虛擬機,各自部署好單機模式(或者通過scp命令將zookeeper配置分發其他節點)
·2、3台機器上myid保存的數據分別為1,2,3,與3台機器上的zoo.cfg配置對應
3、將3台機器的zookeeper服務啟用
4、查看3台機器zookeeper的啟用狀態,發現01機器(啟動服務的第一台機器)為leader,其他兩個為follower
5、登錄集群客戶端
隨機分配ip,可測試添加一個節點,會發現,所有機器上的zookeeperd都會同步
6、關閉01機器作為leader的zookeeper服務,查看另兩台zookeeper狀態
leader機器服務關閉后,leader角色隨機分配給了03機器,登錄集群客戶端,也不再分配01機器
7、重新啟用01機器的zookeeper服務
01機器作為follower角色,添加進集群,並且會同步集群的最新數據
四、參考資料:https://blog.csdn.net/qq_38591756/article/details/82828993