本文檔採用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