Zookeeper摘要

简介与应用场景

Zookeeper的几个应用场景node

Zookeeper简介(一)算法

zookeeper的学习思路

1.zookeeper 提供了什么

  • zookeeper 维护了一个 相似 文件系统的数据结构,能够对节点进行增删改查。
  • zookeeper有通知机制,客户端表示关心节点的变化时,zookeeper在节点变化是,会通知到客户端。

2.基于zookeeper的机制,zookeeper能作什么

  • 1.命名服务,由于path不会重复,因此名字也不会重复。
  • 2.配置管理,客户端监听节点,发生变化时会受到通知,从而实现更新。保证配置的一致性。
  • 3.集群管理:1.机器的加入与退出。2.选举master
  • 4.分布式锁:1.保持独占,经过对node节点加锁实现的。2.控制时序:经过预先存在的节点,在每次执行时,进行选举。
  • 5.队列管理:1.同步队列,监听节点的数目,控制队列的数目。2.FIFO,和控制时序相似。

zookeeper的具体应用场景

数据发布/订阅、分布式应用配置项 、分布式计数器、统一命名服务、状态同步服务、集群管理、master选举、分布式锁、定时任务争夺、分布式队列、分布式协调/通知。数据库

输入图片说明

数据一致性与paxos算法

听说Paxos算法的难理解与算法的知名度同样使人敬仰,因此咱们先看如何保持数据的一致性,这里有个原则就是:网络

在一个分布式数据库系统中,若是各节点的初始状态一致,每一个节点都执行相同的操做序列,那么他们最后能获得一个一致的状态。数据结构

Paxos算法解决的什么问题呢,解决的就是保证每一个节点执行相同的操做序列。好吧,这还不简单,master维护一个全局写队列,全部写操做都必须 放入这个队列编号,那么不管咱们写多少个节点,只要写操做是按编号来的,就能保证一致性。没错,就是这样,但是若是master挂了呢。并发

Paxos算法经过投票来对写操做进行全局编号,同一时刻,只有一个写操做被批准,同时并发的写操做要去争取选票,只有得到过半数选票的写操做才会被 批准(因此永远只会有一个写操做获得批准),其余的写操做竞争失败只好再发起一轮投票,就这样,在日复一日年复一年的投票中,全部写操做都被严格编号排 序。编号严格递增,当一个节点接受了一个编号为100的写操做,以后又接受到编号为99的写操做(由于网络延迟等不少不可预见缘由),它立刻能意识到本身 数据不一致了,自动中止对外服务并重启同步过程。任何一个节点挂掉都不会影响整个集群的数据一致性(总2n+1台,除非挂掉大于n台)。分布式

总结

Zookeeper 做为 Hadoop 项目中的一个子项目,是 Hadoop 集群管理的一个必不可少的模块,它主要用来控制集群中的数据,如它管理 Hadoop 集群中的 NameNode,还有 Hbase 中 Master Election、Server 之间状态同步等。oop

相关文章
相关标签/搜索