zookeeper 集羣

step 1:apache

下載zookeeper :從http://zookeeper.apache.org找一個穩定版下載,例如:zookeeper-3.4.8.tar.gz測試

(http://apache.fayea.com/zookeeper/)命令行

step2:server

建3個集羣的目錄:zk0, zk1, zk2.事務

把zookeeper-3.4.8.tar.gz 解壓複製3份到每一個節點下get

step3:同步

修改配置文件 /zk0/conf/zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=d:/tmp/cluster0
dataLogDir=d:/tmp/cluster0/logs
clientPort=4180
server.0=127.0.0.1:8880:7770    
server.1=127.0.0.1:8881:7771    
server.2=127.0.0.1:8882:7772 it

dataLogDir能夠不配置,默認放在dataDir下。io

clientPort 故名思義客端鏈接的端口,因爲物理PC,每一個節點配置一個,不然會出現端口已佔用異常。test

其它2個節點的配置 省略

step4: 

在step3配置 的${dataDir} 目錄下爲每一個節點建myid文件,內容爲對應server的編號,zk0節點下的爲0.

step5:

啓動zk,

命令行模式進入zk0/bin/ ,輸入:

這時有warn並拋出異常,內容是鏈接另2個節點鏈接不上,能夠忽略,把另2個節點依照此法逐個啓動。

zk0再也不報異常。

step6:

測試集羣

>zkCli -server 127.0.0.1:4182

鏈接第3個節點

 

鏈接zk1.

zk0:

同步成功。

 

備註:經常使用命令

啓動ZK

zkServer

鏈接client

zkCli -server 127.0.0.1:4182

client 命令:

create /test "test"

get /test

set /test "test"

delete /test

後記:

1.不管哪一個節點作事務操做,各個節點都會更新。

2.

 昨天才弄的zookeeper,不知道怎麼查看哪一個是Leader,哪位同窗知道能夠回覆,多謝.

但應該是樣:

  啓動順序zk0,zk1,zk2. Leader 是zk1.

  啓動順序是zk1,zk2,zk0,Leader是zk2.

  啓動順序是zk2,zk1,zk0,Leader是zk2.

爲何呢? ZK的election是有規則的:(1) TXid 最大 (2) 節點ID最大。 

相關文章
相關標籤/搜索