ZooKeeper:集群部署

1. 下载安装ZooKeeper(所有节点执行)

1
2
3
4
# 下载ZooKeeper(版本可调整)
cd /opt
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz

2. 准备工作(所有节点执行)

1
2
3
4
5
# 创建数据目录
mkdir -p /tmp/zookeeper/data

# 配置hosts文件
vim /etc/hosts

添加以下内容到/etc/hosts:

1
2
3
192.168.154.34 cluster1
192.168.154.35 cluster2
192.168.154.36 cluster3

3. 安装JDK(所有节点执行)

1
2
3
4
5
6
7
8
9
# 创建Java目录
mkdir -p /usr/java
cd /usr/java

# 下载JDK(请替换为实际下载的JDK包)
tar -zxvf jdk-8u261-linux-x64.tar.gz

# 配置环境变量
vim /etc/profile

添加以下内容到/etc/profile:

1
2
3
export JAVA_HOME=/usr/java/jdk1.8.0_261
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

使环境变量生效:

1
2
source /etc/profile
java -version # 验证安装

4. 配置ZooKeeper(所有节点执行)

1
2
3
cd /opt/apache-zookeeper-3.6.3-bin/conf
cp zoo-sample.cfg zoo.cfg
vim zoo.cfg

zoo.cfg配置内容:

1
2
3
4
dataDir=/tmp/zookeeper/data
server.1=cluster1:2888:3888
server.2=cluster2:2888:3888
server.3=cluster3:2888:3888

5. 配置myid文件(各节点分别执行)

在192.168.154.34(cluster1)执行:

1
echo "1" > /tmp/zookeeper/data/myid

在192.168.154.35(cluster2)执行:

1
echo "2" > /tmp/zookeeper/data/myid

在192.168.154.36(cluster3)执行:

1
echo "3" > /tmp/zookeeper/data/myid

6. 配置ZooKeeper环境变量(所有节点执行)

1
vim /etc/profile

添加以下内容:

1
2
export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.6.3-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

使环境变量生效:

1
source /etc/profile

7. 启动ZooKeeper集群(各节点分别执行)

1
2
3
4
5
6
7
cd /opt/apache-zookeeper-3.6.3-bin/bin

# 启动服务
./zkServer.sh start

# 检查状态(启动后约1分钟再检查)
./zkServer.sh status

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 启动服务
./zkServer.sh start

# 重启服务
./zkServer.sh restart

# 查看状态
./zkServer.sh status

# 停止服务
./zkServer.sh stop

# 以日志模式启动(调试用)
./zkServer.sh start-foreground

注意事项

  1. 确保所有节点时间同步(建议配置NTP服务)
  2. 确保防火墙开放2181、2888、3888端口
  3. 首次启动时,建议按server.1→server.2→server.3的顺序逐个启动
  4. 集群正常运行时,应有一个leader和两个follower