liunx 安裝 zookeeper ---單機版和集羣版

一.單機版

1.執行:wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

2. 解壓 :tar -zxvf  zookeeper-3.4.10.tar.gz

3. 進入到剛剛解壓好的目錄中,創建兩個文件夾,分別是data和logs,如下:

4.進去conf文件夾:複製配置模板到zoo.cfg

cp zoo_sample.cfg zoo.cfg

5.編輯zoo.cfg

1.2888 端口號是zookeeper服務之間通信的端口 
2.3888 是zookeeper 與其他應用程序通信的端口 
3.initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這裏所說的客戶端不是用戶連接 Zookeeper服務器的客戶端,而是 Zookeeper 服務器集羣中連接到 Leader 的 Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 服務器還沒有收到客戶端的返回信息,那麼表明這個客戶端連接失敗。總的時間長度就是 5*2000=10 秒。 
4.syncLimit:這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒 
5.如果是集羣環境需要配置這個:
server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的IP地址或/etc/hosts文件中映射了IP的主機名;C 表示的是這個服務器與集羣中的 Leader 服務器交換信息的端口;D 表示的是萬一集羣中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。如果是僞集羣的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。

6..在 dataDir=/opt/zookeeper-3.4.10/data下創建 myid文件 編輯myid文件,並在對應的IP的機器上輸入對應的編號。如在zookeeper上,myid文件內容就是1。如果只在單點上進行安裝配置,那麼只有一個server.1。如下:

7.在文件中增加zookeeper配置

vim /etc/profile

8.使配置生效

  source /etc/profile

9.啓動服務

 

二、集羣版

1.先從當前這臺機器複製zookeeper到另一臺虛擬機上,然後修改zoo.cfg的clientPort分別爲2180和2181
2.加入環境變量,並source生效

3.分別啓動zookeeper,並使用zkCli.sh測試是否可以連接(注意:同一個機器,連接時需要指定ip和端口不然默認都是2181)

4.修改conf/zoo.cfg文件

server.1=192.168.213.128:2888:3888
server.2=192.168.213.129:2888:3888
server.3=192.168.213.129:2889:3889

5.修改myid文件,文件中的數字就是對應的zoo.cfg中的server後面的數字

6.關閉防火牆,這個會導致網絡不通
7.重啓三個zookeeper服務

bin/zkServer.sh start
8.檢查集羣狀態---bin/zkServer.sh status

一個leader, 2個follower,集羣搭建成功。

遇到的問題:
1在一個機器,2,3在另一個機器,2,3的防火牆沒關時,1啓動報錯

# /opt/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

 

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