下面以 CentOS 7/8 为例,一步步说明如何搭建 ZooKeeper 单机环境(也包含伪集群/集群要点)。
# 查看是否已安装
java -version
# 如果没有,安装 OpenJDK
yum install -y java-1.8.0-openjdk-devel
确认:
java -version
mkdir -p /opt/zookeeper
cd /opt/zookeeper
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
可根据需要替换版本
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin zookeeper
mkdir -p /opt/zookeeper/data
cd /opt/zookeeper/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
核心配置示例:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
保存退出。
/opt/zookeeper/zookeeper/bin/zkServer.sh start
/opt/zookeeper/zookeeper/bin/zkServer.sh status
/opt/zookeeper/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
vi /etc/systemd/system/zookeeper.service
内容:
[Unit]
Description=ZooKeeper
After=network.target
[Service]
Type=forking
ExecStart=/opt/zookeeper/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/zookeeper/bin/zkServer.sh stop
User=root
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable zookeeper
systemctl start zookeeper
zoo1.cfg
zoo2.cfg
zoo3.cfg
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
并在各自 dataDir 中创建 myid 文件:
echo 1 > /opt/zookeeper/data1/myid
echo 2 > /opt/zookeeper/data2/myid
echo 3 > /opt/zookeeper/data3/myid
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload
dataDir 权限clientPortJAVA_HOME如果你需要 CentOS + Docker 方式 或 生产级集群配置,可以继续问我。