大数据相关框架(一)Zookeeper
Zookeeper安装参考:https://www.cnblogs.com/jimcsharp/p/8358271.html
一、Zookeeper概述
(一)定义及作用
1.Zookeper是一个为分布式应用提供的一个分布式开源协调服务框架,是Google的Chubby的一个开源实现,是Hadoop和Hbase的重要组件。
2.主要用于解决分布式集群中应用系统的一致性问题。
3.可⽤于维护和监控存储的数据的状态,通过监控存储的数据状态的变化,从⽽达到基于数据的集群管理。
4.提供了⼀组原语(机器指令),提供了Java和C语⾔的接⼝。
(二)Zookeeper的特点
1.是⼀个分布式集群,⼀个领导者(leader),多个跟随者(follower).
2.集群中只要有半数以上的节点存活,Zookeeper集群就能正常服务。
3.全局数据⼀致性:每个server保存⼀份相同的数据副本,client⽆论连接哪个server,数据都是⼀致的。
4.更新请求按顺序进⾏:来⾃同⼀个client的更新请求按其发送顺序依次执⾏
5.数据更新的原⼦性:⼀次数据的更新要么成功,要么失败
6.数据的实时性:在⼀定时间范围内,client能读到最新数据。
(三)Zookeeper的数据模型
Zookeeper的数据模型采⽤的与Unix⽂件系统类似的层次化的树形结构。我们可以将其理解为⼀个具有⾼可⽤特征的⽂件系统。这个⽂件系统中没有⽂件和⽬录,⽽是统⼀使⽤"节点"(node)的概念,称之为znode。znode既可以作为保存数据的容器(如同⽂件),也可以作为保存其他znode的容器(如同⽬录)。所有的znode构成了⼀个层次化的命名空间。
- Zookeeper 被设计⽤来实现协调服务(这类服务通常使⽤⼩数据⽂件),⽽不是⽤于⼤容量数据存储,因此⼀个znode能存储的数据被限制在1MB以内,
- 每个znode都可以通过其路径唯⼀标识。
二、Zookeeper⼯作原理
(一)选举制度
1.选举制度概述:
Zookeeper没有在配置⽂件中指定leader和follower,⽽是使⽤算法(Paxos)在