ZooKeeper部署

发布于 2026-07-28 12:55 更新于 2026-07-28 12:55 722 字 4 min read ... 访问量

本文介绍了ZooKeeper的安装、配置及运行过程。包括下载、设置环境变量、编辑配置文件、创建数据目录并配置myid文件,以及在多节点上同步配置和启动服务。通过检查端口占用、赋权和运行命令,最终验证ZooKeeper是否正常启动并完成选举机制的确认。

ZooKeeper 的配置

ZooKeeper 的安装

下载 ZooKeeper

wget -P /export/software/ https://repo.huaweicloud.com/apache/zookeeper/zookeeper-3.8.5/apache-zookeeper-3.8.5-bin.tar.gz

安装 ZooKeeper

tar -zxvf /export/software/apache-zookeeper-3.8.5-bin.tar.gz -C /export/servers/
cd /export/servers/
mv /export/servers/apache-zookeeper-3.8.5-bin /export/servers/zookeeper

配置环境变量

sudo vim /etc/profile

文件末尾加上以下配置

export ZOOKEEPER_HOME=/export/servers/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

重新加载环境变量

source /etc/profile

编辑配置文件

cd /export/servers/zookeeper/conf

复制模板为正式配置文件

sudo cp /export/servers/zookeeper/conf/zoo_sample.cfg /export/servers/zookeeper/conf/zoo.cfg

sudo vim zoo.cfg

然后输入ggdG(删除全部内容,大小写严格遵守),输入以下配置

# 数据同步的基本时间单位(毫秒),默认2000
tickTime=2000

#  follower初始化连接到leader的最大心跳数(tickTime的倍数)
initLimit=10

#  follower与leader之间发送消息的最大心跳数(超过则认为连接失效)
syncLimit=5

# ZooKeeper数据存储目录(需与HBase的hbase.zookeeper.property.dataDir一致)
dataDir=/export/servers/zookeeper/data

# 客户端连接ZooKeeper的端口(默认2181,HBase会通过此端口连接)
clientPort=2181

# 集群节点配置(格式:server.编号=主机名:通信端口:选举端口)
# 编号需与每个节点的myid文件内容一致
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888

# 允许客户端连接的最大数量(默认60,按需调整)
maxClientCnxns=60

# 自动清理事务日志的时间(小时),默认0表示不自动清理
autopurge.purgeInterval=1

在 hadoop01 上创建数据目录并写入 myid

mkdir -p /export/servers/zookeeper/data

sudo vim /export/servers/zookeeper/data/myid

写入以下内容

1

ZooKeeper 的分发

环境变量的分发

scp /etc/profile hadoop02:/tmp/profile

ssh hadoop02 "sudo cp /tmp/profile /etc/profile && sudo rm /tmp/profile"

scp /etc/profile hadoop03:/tmp/profile

ssh hadoop03 "sudo cp /tmp/profile /etc/profile && sudo rm /tmp/profile"

ZooKeeper 的分发

scp -r /export/servers/zookeeper hadoop02:/tmp/

ssh hadoop02 "sudo cp -r /tmp/zookeeper/ /export/servers/ && sudo rm -rf /tmp/zookeeper"

scp -r /export/servers/zookeeper hadoop03:/tmp/

ssh hadoop03 "sudo cp -r /tmp/zookeeper/ /export/servers/ && sudo rm -rf /tmp/zookeeper"

分别编辑另 2 个服务器的 myid

进入到 hadoop02:

sudo vim /export/servers/zookeeper/data/myid

进入到 hadoop03

sudo vim /export/servers/zookeeper/data/myid

重新加载环境变量

ssh hadoop02 "bash -c 'source /etc/profile'"

ssh hadoop03 "bash -c 'source /etc/profile'"

ZooKeeper 的运行

查看端口是否占用

sudo netstat -tunlp | grep 2181

如若有,使用sudo kill pid进行强制结束该进程

为 ZooKeeper 文件夹赋权

sudo chown -R hadooper /export/servers/zookeeper

sudo chmod -R 755 /export/servers/zookeeper

ssh hadoop02 "sudo chown -R hadooper /export/servers/zookeeper && sudo chmod -R 755 /export/servers/zookeeper"

ssh hadoop03 "sudo chown -R hadooper /export/servers/zookeeper && sudo chmod -R 755 /export/servers/zookeeper"

关闭防火墙

sudo ufw disable

ssh hadoop02 "sudo ufw disable"

ssh hadoop03 "sudo ufw disable"

执行 ZooKeeper 运行指令

执行以下指令,然后执行 jps 以查看 zookeeper 是否正常启动,如若正常启动,则如下图所示

$ZOOKEEPER_HOME/bin/zkServer.sh start

ssh hadoop02 "bash -c 'source /etc/profile && $ZOOKEEPER_HOME/bin/zkServer.sh start'"

ssh hadoop03 "bash -c 'source /etc/profile && $ZOOKEEPER_HOME/bin/zkServer.sh start'"

查看选举结果

$ZOOKEEPER_HOME/bin/zkServer.sh status

ssh hadoop02 "bash -c 'source /etc/profile && $ZOOKEEPER_HOME/bin/zkServer.sh status'"

ssh hadoop03 "bash -c 'source /etc/profile && $ZOOKEEPER_HOME/bin/zkServer.sh status'"

leader 出现在哪个节点都可以

喜欢的话,留下你的评论吧~

... 访问量
© 2026 跨越星轨的客 @Hoshiumi
Powered by theme astro-koharu · Inspired by Shoka