zookeeper服务搭建

zookeeper服务搭建

  • 前言
  • [1. 前置准备](#1. 前置准备)
  • [2. 下载和解压Zookeeper](#2. 下载和解压Zookeeper)
  • [3. 配置环境变量](#3. 配置环境变量)
  • [4. 编辑Zookeeper配置文件](#4. 编辑Zookeeper配置文件)
  • [5. 配置Zookeeper节点ID](#5. 配置Zookeeper节点ID)
  • [6. 配置好的Zookeeper分发到其他节点](#6. 配置好的Zookeeper分发到其他节点)
  • [7. 启动Zookeeper集群](#7. 启动Zookeeper集群)
  • 参考博客

前言

Zookeeper是一个开源的分布式协调服务,主要用于解决分布式应用中的一致性问题。它提供了一个高可用的、具有严格顺序访问特性的分布式数据管理系统。本文将介绍如何搭建Zookeeper服务。


1. 前置准备

因为之前写过,这里就不重复了,如果没有配置这些可以先配置一下

2. 下载和解压Zookeeper

在Zookeeper官网上下载Zookeeper的安装包,我这里用的是zookeeper-3.5.7

如果觉得官网慢可以在我的百度网盘中下载

链接:https://pan.baidu.com/s/1bh6vctylCqFgvWaa-D6jXQ

提取码:55k9

bash 复制代码
wget https://downloads.apache.org/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7

3. 配置环境变量

编辑环境配置文件

bash 复制代码
vim /etc/profile.d/my_env.sh

加入下面这些配置

bash 复制代码
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_333
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin

#解决hadoop无法启动问题
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

使配置文件生效

bash 复制代码
source /etc/profile.d/my_env.sh

4. 编辑Zookeeper配置文件

拷贝zookeeper的conf目录下zoo_sample.cfg文件,重命名,编辑

bash 复制代码
cd /opt/module/zookeeper-3.5.7/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

在zoo.cfg文件中,设置以下必要的配置:

  • dataDir=/opt/module/zookeeper-3.5.7/data/zData:指定Zookeeper数据目录。
  • server.1=hadoop101:2888:3888:定义Zookeeper节点1的主机名、数据端口和选举端口。
  • server.2=hadoop102:2888:3888:定义Zookeeper节点2的主机名、数据端口和选举端口。
  • server.3=hadoop103:2888:3888:定义Zookeeper节点3的主机名、数据端口和选举端口。

具体配置如下:

bash 复制代码
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/opt/module/zookeeper-3.5.7/data/zData
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888

5. 配置Zookeeper节点ID

在每个Zookeeper节点的数据目录(/opt/module/zookeeper-3.5.7/data/zData)下创建一个名为myid的文件,其中包含该节点的ID。例如,节点1的myid文件中包含1,节点2的myid文件中包含2,以此类推。

bash 复制代码
mkdir -p /opt/module/zookeeper-3.5.7/data/zData
vim /opt/module/zookeeper-3.5.7/data/zData/myid

输入1即可,另外两台节点分别为2、3

6. 配置好的Zookeeper分发到其他节点

将配置好的zookeeper和环境文件分发到其他服务器

bash 复制代码
cd /opt/module/
xsync zookeeper-3.5.7/
xsync /etc/profile.d/my_env.sh 
# 记得刷新其他服务器环境
source /etc/profile.d/my_env.sh

分发完后记得改另外两台服务器的/opt/module/zookeeper-3.5.7/data/zData/myid文件

7. 启动Zookeeper集群

在每个节点上启动Zookeeper服务(记得关闭防火墙):

bash 复制代码
cd /opt/module/zookeeper-3.5.7/bin
./zkServer.sh start

您可以使用以下命令检查Zookeeper集群的状态:

bash 复制代码
./zkServer.sh status

如果一切正常,您将看到输出类似于以下内容:

复制代码
Mode: follower
Leader: 10.0.0.1:3888

请注意,节点1将成为初始的Leader节点。

现在,您已经成功搭建了Zookeeper集群。您可以通过连接到任何一个Zookeeper节点的数据端口(默认为2181)来使用Zookeeper。

参考博客

相关推荐
ha_lydms5 小时前
MaxCompute中加密与解密函数
大数据·数据库·数据仓库·hadoop·dataworks·maxcompute·odps
EatFan5 小时前
Spring Boot 4 落地观察:从 yudao-cloud、matecloud、JPower 看国产脚手架的升级路线与迁移清单
java·spring boot·后端·spring cloud·微服务·后端开发·jdk 21
Maiko Star5 小时前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
文慧的科技江湖6 小时前
《从算力能源各玩各的到全套跑通:算电协同 + Token 全栈方案落地实战》
大数据·重卡充电桩系统·慧知重卡充电桩平台·慧知重卡充电桩系统
分布式存储与RustFS6 小时前
模型 checkpoint 放对象存储:分片上传、断点续传与残留清理
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
现任明教教主~7 小时前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring
m0_466525297 小时前
数字认证参加第十四届用户体验大会,分享标准建设思路
大数据·人工智能·科技
康实训8 小时前
2026数字化AI智慧实训建设方案
大数据·人工智能·实训室·实训室建设
一条破秋裤8 小时前
Linux 线程创建:pthread_create 与基本回收
java·linux·运维
布吉岛的石头8 小时前
Java 程序员第 49 阶段5:BERT 预训练目标 MLM+NSP 的工程含义
java·人工智能·深度学习·bert·transformer