Zookeeper的概述、安装部署及选举机制
一、zookeeper概述
1.zookeeper是hadoop生态的管理者,它致力于开发和维护开源服务器,实现高度可靠的分布式协调。
2.zookeeper的两大功能:
(1)存储数据
(2)监听
3.zookeeper的工作机制,如图:
4.zookeeper存储结构,以树状结构存储
5.zookeeper的应用场景
(1)集群统一的配置、命名管理
比如搭建hdfs集群时,修改完配置文件要将文件发送到其他机器中,
zookeeper可以快速的将配置文件发送到所有机器;
再比如百度的域名:www.baidu.com,这个域名其实对应了许多服务器,
zookeeper的一个目录结构命名为baidu,其子节点对应了很多服务器,zookeeper直接分配ip即可。
(2)服务器的动态上下线感知
比如qq好友上下线时的提示音
(3)负载均衡
可以使每个服务器的访问量大致相同
二、zookeeper集群的安装部署
1.登陆官网下载安装包(本人使用的是3.4.10),上传到linex集群并解压;
zookeeper.apache.org
tar -zxvf zookeeper-3.4.10.tar.gz
2.进入zookeeper/conf下,重命名zoo-sample.cfg为zoo.cfg
进入zoo.cfg文件,修改配置信息:
datadir=/root/hd/zookeeper-3.4.10/zkdata
################cluster#####################
server.1=hd1-1:2888:3888
server.2=hd1-2:2888:3888
server.3=hd1-3:2888:3888
保存并退出;
3.回到zookeepr目录下,创建zkdata文件夹,进入该文件夹创建文件myid
编辑文件myid,内容为1;
4.将配置好的zookeeper文件夹发送他集群其他机器
scp -r /root/hd/zookeeper/ hd1-2:/root/hd/
5.修改环境变量(略),并将修改好的环境变量发送到其他机器,并生效!!
6.启动zookeeper、关闭zookeeper、查看状态
zkserver.sh start
zkserver.sh stop
zkserver.sh status
三、zookeeper的选举机制
描述:
1.当第一台机器启动时它会给自己一票、第二台启动时前两台机器都会给第二台机器一票,以此类推;
2.当第n台机器的票数等于zk集群节点数x的x+1/2时,第n台机器会成为集群的leader;
3.在启动集群时若机器同时启动且票数一样,则会默认选中myid大的机器作为leader。
4.企业中zookeeper集群的节点数为基数台!且zookeeper集群只要有一半以上的节点存活即可正常工作。