Zookeeper详细介绍

zookeeper定义:是一个分布式的,开放源码的分布式应用程序协调服务。

在zookeeper中分为三种角色

1、leader   领导者

2、follower  跟随者

3、observer 监视follower  (是一个隐藏的)

在zookeeper(恢复模式/leader挂掉了/集群刚启动)节点状态分为四种

1、LOOKING:等待状态,一般出现在没有leader准备选举得得时候

2、LEADING:是已经选举出leader。

3、FOLLOWING:在还没有leader,正在进行选举状态

4、OBSERVERING:是leader和follower都产生后的状态

zookeeper的六大特性

  • 顺序一致性:按照客户端发送请求的顺序更新数据。

  • 原子性:更新要么成功,要么失败,不会出现部分更新。

  • 单一性 :无论客户端连接哪个server,都会看到同一个视图。

  • 可靠性:一旦数据更新成功,将一直保持,直到新的更新。

  • 及时性:客户端会在一个确定的时间内得到最新的数据。

zookeeper的原子广播

通过跟随者的投票确定某一件事能不能做,故zookeeper跟随者最好是<=255个,并且是奇数

1.请求一开始到follower,follower会将请求发送给leader

2.leader将请求下发给所有的follower,follower来判断,并将结果返回给leader

3.将请求写入的文件分发到所有的follower------(最终一致性--及时在写入的过程中有节点连接不上,当恢复的时候还会把节点上写入数据)

zookeeper的zab协议分为两种

         1.广播模式----选举出来leader,对外提供服务

         2.恢复模式----选举leader,就是四大状态

zookeeper的选举机制

首先会通过自身ID(serverid(设置的myid)),ID大的优先,如果ID相同就会通过zxid选举,也是zxid大的优先,并且也遵守少数服从多数的原则

zookeeper的znode

znode是zookeeper自身的文件系统,为了快速的传输,通常它们都很小大约是1M,它会实时将DataNode的数据读取到,并发送到leader,在从leader读取各个znode文件合并后的数据,从而保证了它的实时性。这是也是它的六大特性的体现

znode它有分为四种:1.持久2.临时3.持久顺序4.临时顺序

进入zookeeper客户端的命令是:zkCli.sh -server 192.168.157.123:2181(2181端口号)

通过eclipse创建连接     Zookeeper  zk=newzookeeper("192.168.79.125:2181",timeout,watcher)

这些就是简单的API

  • create - 在树形结构的位置中创建节点

  • delete - 删除一个节点

  • exists - 测试节点在指定位置上是否存在

  • get data - 从节点上读取数据

  • set data - 往节点写入数据

  • get chilren - 检索节点的子节点列表

  • sync - 等待传输数据

zookeeper的监听机制:监听是follower给出一个Watch,它监视leader的状态并将leader的状态告诉会给follower

    

你可能感兴趣的:(大数据,zookeeper,zookeeper,选举机制,leader,follower)