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 小时前
【数据仓库】
大数据
油头少年_w1 小时前
大数据导论及分布式存储HadoopHDFS入门
大数据·hadoop·hdfs
2401_865854882 小时前
iOS应用想要下载到手机上只能苹果签名吗?
后端·ios·iphone
AskHarries2 小时前
Spring Boot集成Access DB实现数据导入和解析
java·spring boot·后端
Elastic 中国社区官方博客2 小时前
释放专利力量:Patently 如何利用向量搜索和 NLP 简化协作
大数据·数据库·人工智能·elasticsearch·搜索引擎·自然语言处理
2401_857622662 小时前
SpringBoot健身房管理:敏捷与自动化
spring boot·后端·自动化
程序员阿龙2 小时前
基于SpringBoot的医疗陪护系统设计与实现(源码+定制+开发)
java·spring boot·后端·医疗陪护管理平台·患者护理服务平台·医疗信息管理系统·患者陪护服务平台
力姆泰克2 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
力姆泰克2 小时前
力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
大数据·服务器·数据库·人工智能·1024程序员节
QYR市场调研2 小时前
自动化研磨领域的革新者:半自动与自动自磨机的技术突破
大数据·人工智能