【大数据】zookeeper总结

什么是zookeeper?为什么使用zookeeper?

 ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是hadoop和hbase的重要组件。

它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

它在Hadoop2.x中的作用是确保整个集群只有一个NameNode是active,存储配置信息等.

zookeeper中的角色

【大数据】zookeeper总结_第1张图片

领导者(leader),负责进行投票的发起和决议,更新系统状态。

学习者(learner),包括跟随者(follower)和观察者(observer), follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票。

跟随者(follower),用于接收客户端请求并向客户端返回结果,在选举过程中投票

观察者(Observer),可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度。

客户端(client),请求发起方

zookeeper的特点?

强一致性:为客户端展示同一个视图,最终呈现同一个结果

可靠性:如果消息被一台zk服务器接收,它将被所有的服务器接收

实时性:Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新的数据,需要在读取数据之前调用sync()接口

独立性:各个客户端之间互不干预

原子性:更新只能成功或者失败,没有中间状态

顺序性:所有server,同一消息发布顺序一致

zookeeper工作原理

1.每个Server在内存中存储了一份数据;

2.Zookeeper启动时,将从实例中选举一个leader(Paxos协议)

3.Leader负责处理数据更新等操作

4.当且仅当大多数Server在内存中成功修改数据,才标志着一个更新操作成功。

 Zookeeper的核心是原子广播,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。

Znode节点

    Znode有两种类型,短暂的(ephemeral)和持久的(persistent)

    Znode的类型在创建时确定并且之后不能再修改

    短暂znode的客户端会话结束时,zookeeper会将该短暂znode删除,短暂znode不可以有子节点

    持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除

    Znode有四种形式的目录节点:

    PERSISTENT、持久的

    EPHEMERAL、短暂的

    PERSISTENT_SEQUENTIAL、持久且有序的

    EPHEMERAL_SEQUENTIAL   短暂且有序的

你可能感兴趣的:(大数据,zookeeper)