当前位置: 首页>后端>正文

ZooKeeper集群专题

集群部署

1.集群规划
在hadoop102、hadoop103、hadoop104三个节点上都部署Zookeeper

2.解压安装
解压和重命名操作即可。
参考之前的本地安装文章,此处不再赘述。

3.配置服务器编号
(1)在/opt/module/zookeeper-3.5.7/这个目录下创建zkData
(2)在/opt/module/zookeeper-3.5.7/zkData目录下创建一个myid的文件(文件名一点都不能差,因为源码写的就是读myid这个文件),在文件中添加与server对应的编号(注意:上下不要有空行,左右不要有空格,一定要在Linux里面创建,在notepad++里很可能乱码)
此处以hadoop102这台为例,在myid中仅写入2即可:

vim myid
2

(3)拷贝配置好的zookeeper到其他机器上,如果能用xsync可以直接用

xsync zookeeper-3.5.7

或者直接在hadoop103、hadoop104上配完全一样的也可以,
并分别在hadoop103、hadoop104上修改myid文件内容分别为3和4。

4.配置zoo.cfg文件
(1)重命名或复制/opt/module/zookeeper-3.5.7/conf这个目录下的zoo_sample.cfg为zoo.cfg
(2)修改配置文件
修改数据存储路径配置,并增加集群配置

vim zoo.cfg

datadir=/opt/module/zookeeper-3.5.7/zkData

#增加如下配置
###cluster###
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

(3)配置参数解读
格式server.A=B:C:D
A是一个数字,即dataDir目录下myid文件中写入的server编号
B是服务器地址或主机名
C是这个服务器Follower与集群中的Leader服务器交换信息的端口,即集群节点通讯端口
D是万一集群中Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,这个端口就是用来执行选举时服务器相互通信的端口。

5.启动
使用bin/zkServer.sh start启动,我们通过bin/zkServer.sh status检查状态,发现报错“Error contacting service. It is probably not running”,这是因为集群环境,启动节点未超过半数的情况下,无法选出Leader,集群就没法工作。
因此我们实验的三节点环境中至少2节点启动后集群才能正常工作,bin/zkServer.sh status中显示集群角色。
当集群刚好可以正常启动时,最后一个启动的节点会成为Leader,之前启动的节点则是Follower,此后新启动的节点也是Follower。

选举机制

1.第一次启动

ZooKeeper集群专题,第1张

(1)服务器1启动,发起第一次选举。服务器1投自己一票。此时服务器1票数为1,不够半数以上(3),选举无法完成,服务器1状态保持为LOOKING;


https://www.xamrdz.com/backend/3kc1936178.html

相关文章: