環(huán)境準備
- java1.6以上的軟件包
- zookeeper安裝包
- 三臺及以上的服務器(帶Linux系統(tǒng))
我的環(huán)境
| 名稱 | 版本 |
|---|---|
| JDK | java-1.8.0-openjdk-src.x86_64 |
| ZooKeeper | 3.7.0 |
| CentOS | 7.9 |
服務器信息
| 節(jié)點名稱 | IP地址 |
|---|---|
| ClusterNode1 | 192.168.1.1 |
| ClusterNode2 | 192.168.1.2 |
| ClusterNode3 | 192.168.1.3 |
安裝
安裝下載工具并安裝jdk
yum install wget java-1.8.0-openjdk-src.x86_64 -y
- jdk版本可以使用yum search jdk搜索
下載ZooKeeper安裝包
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
創(chuàng)建zookeeper目錄并解壓
mkdir -p zookeeper/{data,logs}| tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz --strip-components 1 -C zookeeper
- 去除目錄結構加上 --strip-components N(N是目錄深度)
配置zoo.cfg
首次使用 ZooKeeper,需要將 $ZK_HOME 下的 zoo_sample.cfg 文件重命名為 zoo.cfg,并進行以下配置
dataDir=/$ZK_HOME/data # Zookeeper服務器存儲快照文件的目錄,必須配置
dataLogDir=/$ZK_HOME/logs # Zookeeper服務器存儲事務日志的目錄
clientPort=2181 # 服務器對外服務端口,一般設置為2181
server.x=IP1:2888:3888
server.x=IP2:2888:3888
server.x=IP3:2888:3888
- server.x中的x是一個數字,與myid文件中的id是一致的,一般設置成IP地址最后一位。右邊配置了兩個端口,第一個端口用于數據同步和其它通信,第二個端口用于Leader選舉過程中投票通信
創(chuàng)建myid文件
echo "x" > /$ZK_HOME/data/myid
我的zk配置文件
節(jié)點:ClusterNode1
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=/root/zookeeper/data
dataLogDir=/root/zookeeper/logs
server.1=192.168.3.1:2888:3888
server.2=192.168.3.2:2888:3888
server.3=192.168.3.3:2888:3888
節(jié)點:ClusterNode2
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=/root/zookeeper/data
dataLogDir=/root/zookeeper/logs
server.1=192.168.3.1:2888:3888
server.2=192.168.3.2:2888:3888
server.3=192.168.3.3:2888:3888
節(jié)點:ClusterNode3
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=/root/zookeeper/data
dataLogDir=/root/zookeeper/logs
server.1=192.168.3.1:2888:3888
server.2=192.168.3.2:2888:3888
server.3=192.168.3.3:2888:3888
驗證
節(jié)點:ClusterNode1
./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
節(jié)點:ClusterNode2
./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
節(jié)點:ClusterNode3
./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower