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集群的搭建奠定了基础,接下来让我们一起走进高可用集群的搭建吧!

相关推荐
小码哥_常5 小时前
解锁AI编程密码:程序员常用的10个AI提示词
后端
@insist1235 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
天辛大师5 小时前
AI助力旅游扩大化,五一旅游公园通游年票普惠研究
大数据·启发式算法·旅游
WordPress学习笔记6 小时前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
直奔標竿6 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
金銀銅鐵6 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端
数智化精益手记局7 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
uzong8 小时前
我研读了 500 个 Spring Boot 生产级代码库,90% 都犯了这 7 个致命错误
后端
xiaobaoyu8 小时前
ssm知识点梳理
后端
Elastic 中国社区官方博客8 小时前
使用 Observability Migration Platform 将 Datadog 和 Grafana 的仪表板与告警迁移到 Kibana
大数据·elasticsearch·搜索引擎·信息可视化·全文检索·grafana·datalog