Zookeeper摘要

简介与应用场景

Zookeeper的几个应用场景

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 之间状态同步等。

转载于:https://my.oschina.net/u/3421984/blog/1649228

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值