一、基础环境准备
Linux系统:需提前安装JDK(建议Java 11及以上),可通过以下命令安装(以Ubuntu为例):
sudo apt-get update && sudo apt-get install -y openjdk-11-jdk
验证Java安装:java -version(需显示Java版本信息)。
Windows系统:需安装JDK并配置环境变量(如JAVA_HOME),确保java命令可在命令行中运行。
二、下载ZooKeeper安装包
从Apache ZooKeeper官网下载稳定版本的二进制发行版(避免下载Source版本):
- 官网下载地址:https://zookeeper.apache.org/releases.html
- 示例(Linux使用wget):
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz - Windows可直接通过浏览器下载并解压。
三、解压与目录配置
Linux系统
- 解压安装包到目标目录(如
/opt):tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt - 重命名目录(可选,便于管理):
mv /opt/apache-zookeeper-3.7.0-bin /opt/zookeeper - 创建数据存储目录:
sudo mkdir -p /opt/zookeeper/data
Windows系统
- 解压安装包到本地目录(如
D:\zookeeper); - 在安装目录下新建
data文件夹(用于存储ZooKeeper数据); - 新建
log文件夹(用于存储日志,可选但建议创建)。
四、配置ZooKeeper
核心配置文件
所有配置均在conf目录下完成:
-
复制模板文件
zoo_sample.cfg并重命名为zoo.cfg(此为ZooKeeper的默认配置文件):- Linux:
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg - Windows:复制
conf\zoo_sample.cfg并重命名为zoo.cfg。
- Linux:
-
修改
zoo.cfg关键配置(以Linux为例):# 数据存储目录(需指向第一步创建的data目录) dataDir=/opt/zookeeper/data # 客户端连接端口(默认2181,若被占用可修改为其他空闲端口) clientPort=2181 # 集群配置(单节点无需修改,集群需添加server.x=host:port1:port2) # 如:server.1=node1:2888:3888- Windows需将
dataDir修改为本地路径(如dataDir=D:\\zookeeper\\data)。
- Windows需将
-
(可选)创建
myid文件(仅集群需要):
在dataDir目录下创建myid文件,内容为节点ID(如单节点写1):echo 1 > /opt/zookeeper/data/myid
五、启动ZooKeeper服务
Linux系统
-
启动服务端:进入
bin目录,执行:cd /opt/zookeeper/bin ./zkServer.sh start启动成功会显示类似信息:
Started ZooKeeper Server with pid: 12345。 -
查看服务状态:
./zkServer.sh status若显示
Mode: standalone(单节点)或集群模式信息,则表示启动成功。 -
停止服务端:
./zkServer.sh stop
Windows系统
- 双击安装目录下的
zkServer.cmd文件,启动服务端; - 控制台显示
bind to port 0.0.0.0/0.0.0.0:2181,表示启动成功。
六、连接ZooKeeper客户端
Linux系统
进入bin目录,执行:
./zkCli.sh -server 127.0.0.1:2181
连接成功会显示:Welcome to ZooKeeper![version: 3.7.0, build: ...]。
Windows系统
双击安装目录下的zkCli.cmd文件,在弹出窗口中输入:
connect 127.0.0.1:2181
连接成功会显示:Welcome to ZooKeeper![version: 3.7.0, build: ...]。
七、(可选)配置开机自启(Linux系统)
- 创建systemd服务文件:
sudo vim /etc/systemd/system/zookeeper.service - 添加以下内容(根据实际路径修改):
[Unit] Description=Apache ZooKeeper After=network.target [Service] Type=forking User=root Group=root ExecStart=/opt/zookeeper/bin/zkServer.sh start ExecStop=/opt/zookeeper/bin/zkServer.sh stop Restart=always [Install] WantedBy=multi-user.target - 启用并启动服务:
sudo systemctl enable zookeeper sudo systemctl start zookeeper - 验证服务状态:
sudo systemctl status zookeeper
常见问题排查
- 端口冲突:若启动时报错“Address already in use”,需修改
zoo.cfg中的clientPort为其他空闲端口(如2182); - Java未安装:启动时会报错“Java not found”,需安装JDK并配置环境变量;
- 数据目录权限问题(Linux):确保
dataDir目录有读写权限(sudo chown -R user:user /opt/zookeeper/data)。