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最大。