目录
一: 安装工具准备:
apache-zookeeper-3.5.5-bin.tar
链接:https://pan.baidu.com/s/191zqPJr1ZXItAFUp6rGnfQ
提取码:aoye
二: 前置知识
1. 介绍:
zookeeper 是一个开源的分布式的apache项目。为分布式应用提供协调服务。
zookeeper = 文件系统 + 通知机制。
2. 作用:
管理大数据体系中的集群以及所有框架
3. 设计理念:
是一个基于观察者模式设计的分布式服务管理框架。
- 负责存储和管理关键数据(存储节点元数据信息)
- 然后接受观察者的注册
- 一旦这些数据状态改变,zookeeper将负责通知已经在zookeeper上注册的观察者做出相应的反应。
4. 特点:
- 一个领导者(leader),多个跟随者(follow)组成的集群
- 集群中只要有半数节点存活,zookeeper集群就能正常服务
- 全局数据一致【每个server保存同一份相同数据副本,client无论连接到那个server,数据都一致。】
- 更新请求顺序进行 【来着同一个client的更新请求按发送顺序依次执行】
- 数据更新原子性,一次数据更新要么是成功,要么是失败
- 实时性,在一定时间范围内,client能读取最新数据
5. zookeeper内部原理:【半数机制】
半数机制: 集群中半数以上机器存活,集群可用,所以zookeeper适合安装奇数台服务器。
选举机制:
zookeeper 默认的算法是 FastLeaderElection,采用投票数大于半数则胜出的逻辑。
假设目前有3台服务器,每台服务器均没有数据,它们的编号分别是1,2,3按编号依次启动,它们的选择举过程如下:
服务器 1 启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器 1 的状态一直属于 Looking。
服务