zookeeper集羣部署

本文檔採用3.4.13(stable)版本搭建,生產環境建議部署當前穩定版本。

zookeeper二進制包下載地址:
http://archive.apache.org/dist/zookeeper/

參考官方文檔地址:
http://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#sc_systemReq

必備軟件

ZooKeeper 在 Java 中運行,版本 1.6 或更高版本(本文采用8版本)。它做爲ZooKeeper服務器的運行基礎環境。html

三個ZooKeeper服務器是總體的最小建議大小,建議部署在不一樣的物理機器上。node

在Yahoo!,ZooKeeper一般部署在專用的RHEL盒子上,具備雙核處理器,2GB RAM和80GB IDE硬盤。apache

 

安裝部署

爲了生產環境的 ZooKeeper 服務的可靠性,咱們一般會部署多節點的 ZooKeeper 以確保服務的容錯性。windows

準備三臺測試服務器進行部署,分別添加進 hosts 文件bash

192.168.4.100 master
192.168.4.21 node
192.168.4.57 node1

添加同步時間的任務計劃啊(三臺機器都執行)服務器

yum install -y ntpdate

echo "*/5 * * * * ntpdate time.windows.com" >> /var/spool/cron/root

注:搭建 Zookeeper 集羣最好使用奇數個機器。例如,使用四臺機器,ZooKeeper 只能處理單臺機器的故障; 若是兩臺機器出現故障,其他兩臺機器不會佔多數。可是,有了五臺機器,ZooKeeper能夠處理兩臺機器的故障,當有六臺時也只能處理兩臺機器的故障。網絡

冗餘注意事項應包括環境的全部方面。若是有三臺ZooKeeper服務器,但它們的網絡電纜都插入同一個網絡交換機,那麼該交換機的故障將影響整個集羣。測試

一、下載並解壓二進制文件spa

[root@master ~]# tar zxf zookeeper-3.4.13.tar.gz

二、進入目錄查看文件分佈日誌

三、進入配置文件目錄

[root@master conf]# cp zoo_sample.cfg zoo.cfg

四、修改配置文件

[root@master conf]# cat zoo.cfg |grep -v ^$ |grep -v ^#
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/bigdata/zookeeper-3.4.13/data    # 修改默認配置文件路徑,不建議使用/tmp
clientPort=2181
# 新增集羣配置 server.id = host:port:port 地址,id值惟一,host地址對應的id值需與各節點data目錄下myid一致
server.1=master:2888:3888
server.2=node:2888:3888
server.3=node1:2888:3888

五、編輯 bin/zkEnv.sh 設置日誌目錄(啓動若是報錯多從日誌中尋找信息)

if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    ZOO_LOG_DIR="/bigdata/zookeeper-3.4.13/logs"
fi

六、在data目錄下建立myid文件,並寫入指定id

myid文件由一行組成,只包含該機器id的文本。因此服務器1的myid將包含文本「1」而沒有別的。id在總體中必須是惟一的,而且應該具備1到255之間的值。

[root@master zookeeper-3.4.13]# echo '1' >data/myid

七、將 zookeeper-3.4.13 文件傳輸到其餘節點上

[root@master bigdata]# scp -r zookeeper-3.4.13  192.168.4.21:/bigdata/
[root@master bigdata]# scp -r zookeeper-3.4.13  192.168.4.57:/bigdata/

八、分別在節點上修改爲對應myid 

# node 節點
[root@node zookeeper-3.4.13]# echo '2' >data/myid
# node1 節點
[root@node1 zookeeper-3.4.13]# echo '3' >data/myid

九、在各節點分別啓動zookeeper

[root@node bin]# ./zkServer.sh start

十、查看各節點狀態

[root@master bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /bigdata/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower

[root@node bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /bigdata/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader

[root@node1 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /bigdata/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower

在現有集羣中三個節點的狀況下,關閉兩個節點後,第三個節點的狀態會出現異常。

啓動一個節點(兩個節點)狀態又能夠恢復;主節點關閉後,會選舉新的主節點,原主節點啓動後會做爲從節點。

十一、經過鏈接到主機來測試部署

在Java中,您能夠運行如下命令來執行簡單操做:

[root@master bin]# ./zkCli.sh -server master:2181
相關文章
相關標籤/搜索