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。

参考博客

相关推荐
天冬忘忧18 分钟前
Flink优化----数据倾斜
大数据·flink
李昊哲小课19 分钟前
deepin 安装 zookeeper
大数据·运维·zookeeper·debian·hbase
筒栗子36 分钟前
复习打卡大数据篇——Hadoop MapReduce
大数据·hadoop·mapreduce
金州饿霸40 分钟前
Hadoop集群(HDFS集群、YARN集群、MapReduce计算框架)
大数据·hadoop·hdfs
Yan.love42 分钟前
开发场景中Java 集合的最佳选择
java·数据结构·链表
椰椰椰耶1 小时前
【文档搜索引擎】搜索模块的完整实现
java·搜索引擎
大G哥1 小时前
java提高正则处理效率
java·开发语言
lucky_syq1 小时前
Spark和MapReduce之间的区别?
大数据·spark·mapreduce
智慧老师1 小时前
Spring基础分析13-Spring Security框架
java·后端·spring
lxyzcm1 小时前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23