zookeeper部署教程

在Linux系统中离线安装并配置ZooKeeper,可按以下步骤操作:

1. 准备安装包和依赖

  • 下载ZooKeeper :在有网络的环境下,前往Apache ZooKeeper官网下载所需的稳定版本,例如zookeeper-3.8.2.tar.gz
  • 准备JDK :ZooKeeper依赖Java运行环境,下载适合Linux系统的JDK安装包,如jdk-11.0.15_linux-x64_bin.tar.gz
  • 将下载好的ZooKeeper和JDK安装包复制到离线的Linux系统中。

2. 安装JDK

bash 复制代码
# 解压JDK安装包
tar -zxvf jdk-11.0.15_linux-x64_bin.tar.gz
# 移动解压后的JDK目录到指定位置
sudo mv jdk-11.0.15 /usr/local/
# 配置环境变量,编辑~/.bashrc文件
vi ~/.bashrc

在文件末尾添加以下内容:

plaintext 复制代码
export JAVA_HOME=/usr/local/jdk-11.0.15
export PATH=$JAVA_HOME/bin:$PATH

使环境变量生效:

bash 复制代码
source ~/.bashrc

验证Java安装:

bash 复制代码
java -version

3. 安装ZooKeeper

bash 复制代码
# 解压ZooKeeper安装包
tar -zxvf zookeeper-3.8.2.tar.gz
# 移动解压后的ZooKeeper目录到指定位置
sudo mv zookeeper-3.8.2 /usr/local/zookeeper

4. 配置ZooKeeper

bash 复制代码
# 进入ZooKeeper配置目录
cd /usr/local/zookeeper/conf
# 复制示例配置文件
cp zoo_sample.cfg zoo.cfg
# 编辑zoo.cfg文件
vi zoo.cfg

zoo.cfg中可进行如下常见配置修改:

plaintext 复制代码
# 数据存储目录
dataDir=/var/lib/zookeeper
# 日志存储目录
dataLogDir=/var/log/zookeeper
# 客户端连接端口
clientPort=2181
# 初始连接时的心跳数
initLimit=5
# 同步连接时的心跳数
syncLimit=2

创建数据和日志目录:

bash 复制代码
sudo mkdir -p /var/lib/zookeeper
sudo mkdir -p /var/log/zookeeper
复制代码
sudo chmod 644 /usr/local/zookeeper/conf/zoo.cfg

5. 配置系统服务(可选但推荐)

复制代码
[linux]# readlink -f $(which java)
/BOCO/java-se-8u43-ri/bin/java

创建ZooKeeper的Systemd服务文件:

bash 复制代码
sudo vi /etc/systemd/system/zookeeper.service

在文件中添加以下内容:

plaintext 复制代码
[Unit]
Description=Apache ZooKeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
Environment=JAVA_HOME=/BOCO/java-se-8u43-ri
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start-foreground
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

重新加载Systemd管理器配置:

bash 复制代码
sudo systemctl daemon-reload

可能遇到的情况

1.脚本权限不足

zkServer.sh 脚本可能没有执行权限。

使用以下命令为 zkServer.sh 脚本添加执行权限:

bash

复制代码
chmod +x /usr/local/zookeeper/bin/zkServer.sh
2.服务文件语法错误

zookeeper.service 文件可能存在语法错误。

使用以下命令检查服务文件语法:

复制代码
sudo systemd-analyze verify zookeeper.service

6. 启动和验证ZooKeeper

使用以下命令开放端口:

复制代码
sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
sudo firewall-cmd --reload

启动ZooKeeper服务:

bash 复制代码
sudo systemctl start zookeeper

设置ZooKeeper开机自启:

bash 复制代码
sudo systemctl enable zookeeper

检查ZooKeeper服务状态:

bash 复制代码
sudo systemctl status zookeeper

使用ZooKeeper客户端连接到服务器进行验证:

bash 复制代码
/usr/local/zookeeper/bin/zkCli.sh -server localhost:2181

通过以上步骤,你可以在离线的Linux系统中完成ZooKeeper的安装和配置。

相关推荐
ai_xiaogui1 小时前
【开源前瞻】从“咸鱼”到“超级个体”:谈谈 Panelai 分布式子服务器管理系统的设计架构与 UI 演进
服务器·分布式·架构·分布式架构·panelai·开源面板·ai工具开发
凯子坚持 c1 小时前
如何基于 CANN 原生能力,构建一个支持 QoS 感知的 LLM 推理调度器
分布式
飞升不如收破烂~1 小时前
Redis 分布式锁+接口幂等性使用+当下流行的限流方案「落地实操」+用户连续点击两下按钮的解决方案自用总结
数据库·redis·分布式
无心水1 小时前
分布式定时任务与SELECT FOR UPDATE:从致命陷阱到优雅解决方案(实战案例+架构演进)
服务器·人工智能·分布式·后端·spring·架构·wpf
Lansonli2 小时前
大数据Spark(八十):Action行动算子fold和aggregate使用案例
大数据·分布式·spark
invicinble3 小时前
对于分布式的原子能力
分布式
心态还需努力呀12 小时前
CANN仓库通信库:分布式训练的梯度压缩技术
分布式·cann
Coder_Boy_16 小时前
基于SpringAI的在线考试系统-相关技术栈(分布式场景下事件机制)
java·spring boot·分布式·ddd
程序员泠零澪回家种桔子19 小时前
分布式事务核心解析与实战方案
分布式