1.配置
先下載zookeeper-3.4.6.tar.gz到本機
下載地址:http://apache.fayea.com/zookeeper/
可以選擇需要的版本,本文下載的是zookeeper-3.4.6.tar.gz,解壓得到文件夾zookeeper-3.4.6
本文示例的是在一臺機器上部署了3個server的例子。
在主文件夾下建立一個zookeeper文件夾,在zookeeper文件夾裏建立三個文件夾server1,server2,server3,
然後每個文件夾裏面解壓一個zookeeper的下載包,並新建data,dataLog,logs目錄,總體結構如下:
先進入/server1/data/目錄,創建一個myid的文件,裏面寫入一個數字,server1對應myid文件寫入1,server2對應myid文件寫入2,server3對應myid文件寫入3。
然後進入/server1/conf目錄,該目錄包含3個文件:
複製zoo_sample.cfg文件,並命名爲zoo.cfg,打開zoo.cfg,文件內容如下:
1、修改dataDir爲data所在絕對路徑,本人修改示例如下:
dataDir=/Users/MJ/zookeeper/server1/data
2、添加dataLogDir爲dataLog所在絕對路徑,本人修改示例如下:
dataLogDir=/Users/MJ/zookeeper/server1/dataLog
3、如果在一臺機器上部署一個server,clientPort使用默認的2181即可,如果在一臺機器上部署多個server,那麼每個server需要制定不同的clientPort,例如server1是2181,server2是2182,server3是2183,dataDir和dataLogDir也需要制定相應的路徑。
4、在文件末尾添加如下內容:
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
需要注意是 server.X ,這個X就是對應 /data/myid中的數字。在3個server的myid文件中分別寫入了1,2,3,那麼每個server中的zoo.cfg需要配成server.1,server.2,server.3。因爲在同一臺機器上,後面連着的2個端口3個server都不要一樣,否則端口衝突,其中第一個端口用來集羣成員的信息交換,第二個端口是在leader掛掉時專門用來進行選舉leader所用。
2.啓動ZooKeeper僞機羣的所有服務器
分別進入三個server的bin目錄下,使用如下命令啓動server服務:
./zkServer.sh start
輸出如下類似信息:
JMX enabled by default
Using config: /Users/MJ/zookeeper/server1/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
全部啓動完成後,使用如下命令查看server狀態,
./zkServer.sh status
輸出如下類似信息表示選爲leader:
JMX
enabled by default
Using config: /Users/lichengjin/zookeeper/server2/bin/../conf/zoo.cfg
Mode: leader
輸出如下類似信息表示選爲follower:
JMX
enabled by default
Using config: /Users/MJ/zookeeper/server1/bin/../conf/zoo.cfg
Mode: follower
如想關閉server服務,使用如下命令:
./zkServer.sh
stop
輸出如下類似信息:
JMX
enabled by default
Using config: /Users/MJ/zookeeper/server1/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
3.接入客戶端
進入任意一個server的bin目錄下,啓動一個客戶端,接入服務。
./zkCli.sh –server localhost:2181