hadoop集群中zookeeper的搭建与原理解释

搭建zookeeper

将zookeeper的apache-zookeeper-3.5.7-bin.tar.gz解压到/export/servers下

bash 复制代码
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /export/servers

为了方便后期使用解压后的文件夹改名为zookeeper-3.5.7

bash 复制代码
mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7

先进入zoo_sample.cfg模版所在的位置,复制并修改他

bash 复制代码
cd /export/servers/zookeeper-3.5.7/zoo_sample.cfg
cp zoo_sample.cfg zoo.cfg

用vi zoo.cfg开始配置文件,文件配置内容如下

bash 复制代码
1.先定位到第12行,来指定数据持久化目录
dataDir=/export/data/zookeeper/zkdata
2.再到文件尾部添加每个zookeeper对应的服务地址以及端口号
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
其中hadoop01、hadoop02、hadoop03都是自己创建的主机名

在每一台都创建数据持久化目录

bash 复制代码
mkdir -p /export/data/zookeeper/zkdata

在每一台机器上创建myid文件

bash 复制代码
1. 在hadoop01的可持久化目录下创建文件并在文件中写入值1
echo 1 > /export/data/zookeeper/zkdata/myid
2. 在hadoop02的可持久化目录下创建文件并在文件中写入值1
echo 2 > /export/data/zookeeper/zkdata/myid
3. 在hadoop03的可持久化目录下创建文件并在文件中写入值1
echo 3 > /export/data/zookeeper/zkdata/myid

配置环境变量,先打开vi /etc/profile文件,后再结尾配置

bash 复制代码
export ZK_HOME=/export/servers/zookeeper-3.5.7
export PATH=$PATH:$ZK_HOME/bin

分发zookeeper的安装目录

bash 复制代码
scp -r /export/servers/zookeeper-3.5.7 root@hadoop01:/export/servers
scp -r /export/servers/zookeeper-3.5.7 root@hadoop02:/export/servers

分发系统变量,让zookeeper的指令在全局都可以用

bash 复制代码
scp -r /etc/profile root@hadoop02:/etc/
scp -r /etc/profile root@hadoop03:/etc/

分发完后记得激活哦

bash 复制代码
source /etc/profile

启动每一台的zookeeper服务

bash 复制代码
zkServer.sh start

查看每一台机器的主从关系

bash 复制代码
zkServer.sh status

此时zookeeper已经搭建完成啦,那么你会发现hadoop02是leader,其他2台是follower那么为什么会是hadoop02是leader而不是hadoop01或者是hadoop03呢?如果想自定义leader该怎么操作呢?

答:zookeeper中选取leader的依据有2个,投票数(与启动的先后顺序有关),id的大小(id越大的被选举leader的可能性越大在配置zoo.cfg文件的结尾server.1=hadoop01:2888:3888其中server后面的1就是hadoop01的id。),比如要想让hadoop03主机当上leader,你可以先将hadoop03的id配置为最大或者是第2大,然后先启动hadoop03的zookeeper服务,再启动其他台(最后再启动比自己id大的主机,因为比你小的机器都把票投给你了,而最后启动的id虽然比你大,但是他只有一票,而你却已经有2票了,而那一票是你投给他的),这样你就可以实现自定义leader啦。

zookeeper的成功搭建为高可用hadoop集群的搭建奠定了基础,接下来让我们一起走进高可用集群的搭建吧!

相关推荐
在未来等你1 小时前
Elasticsearch面试精讲 Day 17:查询性能调优实践
大数据·分布式·elasticsearch·搜索引擎·面试
大数据CLUB4 小时前
基于spark的澳洲光伏发电站选址预测
大数据·hadoop·分布式·数据分析·spark·数据开发
ratbag6720135 小时前
当环保遇上大数据:生态环境大数据技术专业的课程侧重哪些领域?
大数据
计算机编程小央姐6 小时前
跟上大数据时代步伐:食物营养数据可视化分析系统技术前沿解析
大数据·hadoop·信息可视化·spark·django·课程设计·食物
用户21411832636027 小时前
Qwen3-Coder 实战!历史人物短视频一键生成,多分镜人物不崩,魔搭直接玩
后端
ajax_beijing7 小时前
zookeeper是啥
分布式·zookeeper·云原生
追逐时光者7 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 54 期(2025年9.8-9.14)
后端·.net
追逐时光者7 小时前
C#/.NET/.NET Core编程技巧练习集,配套详细的文章教程讲解!
后端·.net
智数研析社7 小时前
9120 部 TMDb 高分电影数据集 | 7 列全维度指标 (评分 / 热度 / 剧情)+API 权威源 | 电影趋势分析 / 推荐系统 / NLP 建模用
大数据·人工智能·python·深度学习·数据分析·数据集·数据清洗
AD钙奶-lalala7 小时前
SpringBoot实现WebSocket服务端
spring boot·后端·websocket