zookeeper在hadoop中的作用以及数据的读写和领袖推选机制

1.zk的作用
    分布协调服务,解决分布式服务在工作时产生的问题

    1)竞态条件    //多个主机同时对一个文件进行操作,俗称抢资源
    2)死锁:        //多个主机互相等待对方完成
    3)不一致性:    //资源文件丢失或者主机宕机

2.zk在hadoop中

hadoop的namenode的高可用及自动容灾,也就是在多namenode 情况下,对namenode 管理节点的active以及standby,具体是:

在zk启动的情况下再启动hadoop的hdfs文件系统时,zk会根据自身的领袖推选机制,建立一个active的namenode,此时该namenode节点的active存放在ActiveStandbyElectorLock结点(zk的结点存储位置),它是临时结点,也就是负责存储active状态下的节点地址.而zk中的另一个节点ActiveBreadCrumb是永久结点,它存储的active的节点信息,当zk会话关闭或者中断时,再次启动,通过领袖推选机制获取的actice节点首先会与永久节点储存的信息做比较,如果此时的推选出来的active与永久结点上的信息一样,则不做任何操作,如果信息不一样,zk会首先将之前永久结点上存储的namenode的状态改为standby,然后再去修改新的active的节点信息,以完成正确分配active节点,避免脑裂(brain-split),即两个active节点状态的问题

3.zk负责的读写操作

   读服务:所有连接节点的请求,zk节点都可以提供读服务(包括follower和leader),读请求可以越过leader直接读取follower节点的信息

   写操作:需要先通过leader节点,leader同意之后,可以向指定节点写入

4.zk的领袖推选机制

以三个节点为例 102 103 104 三个节点 ,初始状态为looking状态  启动的时候,假如首先启动102,此时,102 首先广播自己是leader到103,104,此时的103,104的状态也是looking待定的状态,等到103上的zk启动时,103开始通过自己与102 比较,发现自己比102 大,它也进行广播,103是leader,102收到信息后,发现确实是不如103它,它此时承认103的领导地位,等到104 启动的时候,102节点和103 节点超过半数的节点认为103以及是领导了,104选择跟随,也就承认了103的leader地位. 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值