部署分佈式zookeeper的步驟:
1. 從官網下載zookeepr的最新版本
本文下載的版本是zookeeper-3.3.3
2. 本文將3個peer都部署在一臺機器上。
|-- server1
| `-- zookeeper-3.3.3
|-- server2
| `-- zookeeper-3.3.3
`-- server3
`-- zookeeper-3.3.3
| `-- zookeeper-3.3.3
|-- server2
| `-- zookeeper-3.3.3
`-- server3
`-- zookeeper-3.3.3
3. 以server1爲例,配置server1/zookeeper-3.3.3/conf/zoo.cfg,conf目錄下自帶zoo_sample.cfg,可以基於這個修改。
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/export/crawlspace/mahadev/zookeeper/server1/data
# the port at which the clients will connect
clientPort=12181
server.1=10.20.146.29:12888:13888
server.2=10.20.146.29:22888:23888
server.3=10.20.146.29:32888:33888
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/export/crawlspace/mahadev/zookeeper/server1/data
# the port at which the clients will connect
clientPort=12181
server.1=10.20.146.29:12888:13888
server.2=10.20.146.29:22888:23888
server.3=10.20.146.29:32888:33888
server2和server3的配置拷貝一份,然後分別修改dataDir和clientPort
server2:
dataDir=/export/crawlspace/mahadev/zookeeper/server2/data
clientPort=22181
server3:
dataDir=/export/crawlspace/mahadev/zookeeper/server3/data
clientPort=32181
4. 創建myid到各個server的data目錄下:
cat 1 > /export/crawlspace/mahadev/zookeeper/server1/data
cat 2 > /export/crawlspace/mahadev/zookeeper/server2/data
cat 3 > /export/crawlspace/mahadev/zookeeper/server3/data
5. 啓動:
在各個server的部署目錄下啓動服務
sh bin/zkServer.sh start
啓動第一個的時候會拋異常,這是因爲其他server還沒有啓動的緣故。