關(guān)于ZooKeeper(單機版)的下載、安裝、配置、啟動、測試等,請參考另一篇文章:CentOS安裝ZooKeeper
搭建集群只需在此基礎(chǔ)上增加一些配置,本文也主要介紹這些和集群相關(guān)的配置,其他步驟不再贅述
假設(shè)節(jié)點數(shù)為3,ip分別為:10.20.1.52,10.20.1.53,10.20.1.54
一、配置
1、先安裝并配置其中一臺機器(10.20.1.52):
修改zoo.cfg
shell> cd /usr/local/zookeeper-3.5.3-beta/conf
shell> cp zoo_sample.cfg zoo.cfg
shell> vim zoo.cfg
末尾增加以下集群相關(guān)配置
server.1=10.20.1.52:2888:3888
server.2=10.20.1.53:2888:3888
server.3=10.20.1.54:2888:3888
增加myid文件
shell> mkdir /usr/local/zookeeper-3.5.3-beta/data
shell> echo 1 > /usr/local/zookeeper-3.5.3-beta/data/myid #10.20.1.52
這里echo 1的數(shù)字”1“與zoo.cfg中server.1是一致的
2、復(fù)制到其他節(jié)點(10.20.1.53,10.20.1.54)
第一臺機器配置好以后,直接復(fù)制到其他節(jié)點然后稍加修改即可(當(dāng)然,如果你愿意,也可以按照相同的步驟再重復(fù)安裝配置一次,注意修改myid文件的內(nèi)容即可)
shell> scp -r /usr/local/zookeeper-3.5.3-beta root@10.20.1.53:/usr/local/
shell> scp -r /usr/local/zookeeper-3.5.3-beta root@10.20.1.54:/usr/local/
然后分別修改其他兩臺機器上的myid文件
shell> echo 2 > /usr/local/zookeeper-3.5.3-beta/data/myid #10.20.1.53
shell> echo 3 > /usr/local/zookeeper-3.5.3-beta/data/myid #10.20.1.55
3、關(guān)閉防火墻
CentOS 6:
shell> service iptables stop
shell> chkconfig iptables off
CentOS 7:
shell> systemctl stop firewalld
shell> systemctl disable firewalld
更多防火墻設(shè)置(不想簡單粗暴的關(guān)閉防火墻,只開啟指定端口的訪問),請參考:CentOS防火墻設(shè)置
二、啟動
分別啟動3個ZooKeeper節(jié)點
shell> cd /usr/local/zookeeper-3.5.3-beta/
shell> bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
三、測試
1、查看啟動狀態(tài)
單機版的Mode: standalone不同,集群的Mode會顯示為leader(主節(jié)點)或follower(從節(jié)點),默認集群中的第一個節(jié)點為leader
# 10.20.1.52
shell> bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
# 10.20.1.53
shell> bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
# 10.20.1.54
shell> bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
2、測試節(jié)點(或數(shù)據(jù))同步
在其中一臺機器(10.20.1.52)上創(chuàng)建節(jié)點,查看其他機器(10.20.1.53)上節(jié)點是否同步
shell> cd /usr/local/zookeeper-3.5.3-beta/
# 使用zkCli工具連接本機ZooKeeper,默認2181端口
shell> bin/zkCli.sh
# 查看節(jié)點,默認只有一個[zookeeper]
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
# 創(chuàng)建測試節(jié)點
[zk: localhost:2181(CONNECTED) 1] create /test
Created /test
# 再次查看,多了一個test節(jié)點
[zk: localhost:2181(CONNECTED) 2] ls /
[test, zookeeper]
# 使用connect連接其他機器(也可以直接通過zkCli.sh -server 10.20.1.53:2181連接)
[zk: localhost:2181(CONNECTED) 3] connect 10.20.1.53
# 看到test節(jié)點已經(jīng)同步
[zk: 10.20.1.53(CONNECTED) 4] ls /
[test, zookeeper]