zookeeper僞集羣

僞分佈式集羣:在一臺Server中,啓動多個ZooKeeper的實例。apache

下面來看看zookeeper怎麼進行安裝的吧。vim

下載

選擇一個穩定版本進行下載,我這裏下載的是zookeeper-3.4.6版本。服務器

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

解壓

tar -zxvf  zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6/conf
#複製三份zookeeper配置文件
cp zoo_sample.cfg zoo1.cfg
cp zoo_sample.cfg zoo2.cfg
cp zoo_sample.cfg zoo3.cfg

修改配置

#zoo1.cfg
tickTime=2000  
dataDir=/usr/local/zookeeper-3.4.6/data/zk1
clientPort=2181  
initLimit=10  
syncLimit=5  
server.1=127.0.0.1:2881:3881  
server.2=127.0.0.1:2882:3882  
server.3=127.0.0.1:2883:3883
#zoo2.cfg
tickTime=2000 
dataDir=/usr/local/zookeeper-3.4.6/data/zk2
clientPort=2182
initLimit=10 
syncLimit=5 
server.1=127.0.0.1:2881:3881 
server.2=127.0.0.1:2882:3882 
server.3=127.0.0.1:2883:3883
#zoo3.cfg
tickTime=2000
dataDir=/usr/local/zookeeper-3.4.6/data/zk3
clientPort=2183
initLimit=10
syncLimit=5
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

解釋:分佈式

  • dataDir定義zookeeper實例存儲持久出具的本地文件系統位置spa

  • clientPort定義zookeeper客戶端鏈接zookeeper服務端時使用的端口日誌

  • server定義zookeeper集羣的各個實例的ip和端口server

  • tickTime進程

    指定了zookeeper中的基本時間單元(以毫秒爲單位)ip

    zookeeper集羣中,每一個服務器都有一個id(數字),服務器id在集羣中是惟一的,而且取值範圍是1~255,經過一個名爲myid的純文本設置,這個文件保存在dataDir中get

  • server.n=hostname:port:portn是服務器id,第一個port是follower用來鏈接leader的端口,第二個port是用於leader選舉

  • clientPort監聽client鏈接的端口號

  • initLimit設定了全部follower與leader進行鏈接並同步的時間範圍。若是在設定的時間段內,半數以上的follower跟隨者未能完成同步,leader會宣佈放棄領導地位,而後進行另一次leader選舉,若是這種狀況常常發生,則代表設定的值過小

  • syncLimit設定了容許一個follower與leader這進行同步的時間。若是在設定的時間段內,一個follower未能完成同步,會本身重啓,全部關聯到follower的客戶端將鏈接到另外一個follower

建立dataDir和實例id文件
mkdir -p /usr/local/zookeeper/zk1/data  
mkdir -p /usr/local/zookeeper/zk2/data  
mkdir -p /usr/local/zookeeper/zk3/data  
#zoo1.cfg
vim /usr/local/zookeeper/zk3/data/myid #輸入1
#zoo2.cfg
vim /usr/local/zookeeper/zk3/data/myid #輸入2
#zoo3.cfg
vim /usr/local/zookeeper/zk3/data/myid #輸入3

啓動zookeeper服務

bin/zkServer.sh start ../conf/zoo1.cfg
bin/zkServer.sh start ../conf/zoo2.cfg
bin/zkServer.sh start ../conf/zoo3.cfg
#查看zookeeper 服務角色狀態,[follower,leader]
bin/zkServer.sh status ../conf/zoo1.cfg 
bin/zkServer.sh status ../conf/zoo2.cfg 
bin/zkServer.sh status ../conf/zoo3.cfg

 

查看是否啓動成功

jps

看到相似下面的進程就表示3個實例均啓動成功

13419 QuorumPeerMain

13460 QuorumPeerMain

13561 Jps

13392 QuorumPeerMain

若是未成功啓動,能夠到zookeeper.out文件中查看啓動失敗的日誌信息。

客戶端鏈接

./zkCli.sh -server 127.0.0.1:2181

關閉zookeeper

bin/zkServer.sh stop ../conf/zoo1.cfg
bin/zkServer.sh stop ../conf/zoo2.cfg
bin/zkServer.sh stop ../conf/zoo3.cfg
相關文章
相關標籤/搜索