大数据学习之zookeeper分布式集群版搭建

前言:

本篇文章针对于2020秋季学期的复习操作,一是对该学期的巩固,二是让老师知道他的努力没有白费,同时,在此感谢徐老师对我们的精心教导…

本次需要的材料

zookeeper-3.4.10.tar.gz
官网→https://zookeeper.apache.org/
北京理工学院下载→http://mirror.bit.edu.cn/apache/zookeeper/
本人网盘下载→https://pan.baidu.com/s/1ab–2h8fkUDTTzUC5UGFVA
→t123


前提

基于大数据学习之zookeeper单机版操作
初始的节点必须是基数台→可能出现brainSplit(脑裂)
投票规则:
a)自己给自己先投一票
b)除开自己,必须再投一票
c)那个follower角色的zkServer
获得的票数>=zk集群节点数/2 +1 (3/2+1 = 2)
待到所有的票数投完之后,票数最多的follower当选为leader

大致步骤

①同步环境变量到各个节点
②修改zoo.cfg
③zk目录下新建data目录→存放zk数据
④zk/data/下绑定当前机器的zk-id
⑤同步/opt/zk/到各个节点
⑥source生效环境变量
⑦修改其他节点的zk-id
⑧启动各个节点的zk服务
⑨测试

实操

①同步环境变量到各个节点

在这里插入图片描述

②修改zoo.cfg

[root@Mymaster ~]# cd /opt/zk/conf/
[root@Mymaster conf]# vim zoo.cfg 

在这里插入图片描述

在最后添加如下信息
在这里插入图片描述

③zk目录下新建data目录→存放zk数据

root@Mymaster conf]# cd
[root@Mymaster ~]# cd /opt/zk/
[root@Mymaster zk]# mkdir data

④zk/data/下绑定当前机器的zk-id

[root@Mymaster zk]# cd data
[root@Mymaster data]# echo 201 > myid 
[root@Mymaster data]# cat myid 
201
[root@Mymaster data]# 

⑤同步/opt/zk/到各个节点

[root@Mymaster ~]# scp -r /opt/zk/ root@Myslave01:/opt
.......................................................
[root@Mymaster ~]# scp -r /opt/zk/ root@Myslave02:/opt
.......................................................
[root@Mymaster ~]# ssh Myslave01 ls /opt/
hadoop
jdk
soft
zk
[root@Mymaster ~]# ssh Myslave02 ls /opt/
hadoop
jdk
soft
zk
[root@Mymaster ~]# 

⑥source生效环境变量

[root@Mymaster ~]# source /etc/profile.d/bigdata-etc.sh 
[root@Mymaster ~]# ssh Myslave01 source /etc/profile.d/bigdata-etc.sh 
[root@Mymaster ~]# ssh Myslave02 source /etc/profile.d/bigdata-etc.sh 
[root@Mymaster ~]# 

⑦修改其他节点的zk-id

[root@Mymaster ~]# ssh Myslave01 'echo 202 > /opt/zk/data/myid'
[root@Mymaster ~]# ssh Myslave02 'echo 203 > /opt/zk/data/myid'

⑧启动各个节点的zk服务

[root@Mymaster data]# ssh Mymaster 'zkServer.sh start'
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@Mymaster data]# jps
22550 Jps
22461 QuorumPeerMain
[root@Mymaster data]# ssh Myslave01 'zkServer.sh start'
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@Mymaster data]# ssh Myslave01 'jps'
10244 Jps
10085 QuorumPeerMain
[root@Mymaster data]# ssh Myslave02 'zkServer.sh start'
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@Mymaster data]# ssh Myslave02 'jps'
10182 QuorumPeerMain
10506 Jps
[root@Mymaster data]# 

⑨测试

一、查看各个节点的状态

[root@Mymaster data]# ssh Mymaster 'zkServer.sh status'
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Mode: follower
[root@Mymaster data]# ssh Myslave01 'zkServer.sh status'
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Mode: leader
[root@Mymaster data]# ssh Myslave02 'zkServer.sh status'
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zoo.cfg
Mode: follower
[root@Mymaster data]# 

有且只有一个leader就说明ok的!!

二、验证zNode数据自动同步

在Mymaster节点上新增zNode→myZk
在这里插入图片描述
在Myslave01节点上验证是否同步
在这里插入图片描述

三、验证zkServer选举机制

描述:
①从zkServer中所有follower角色的进程中选举出一个zkServer作为leader。
②选举机制触发有两种情形:
情形1:zk分布式集群启动时,会触发一次选举
情形2:zk分布式集群已经正常启动,运行了一段时间,因为某种因素导致leader角色zkServer宕机了
我们这里验证情形2
查看状态
在这里插入图片描述
我的Myslave01是leader状态所以我将其手动停止来模拟其宕机
在这里插入图片描述
我们再查看一下其他节点的状态
在这里插入图片描述
可以看到我的Myslave02节点变成了leader状态
我们在启动Myslave01节点的zk服务
在这里插入图片描述
其状态变成了follower
总结:集群正常启动后只有leader状态的节点宕机才会重新进行选举
那么本次的复习到此就结束了!!!
编写于2020-1-23

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值