码迷,mamicode.com
首页 > 其他好文 > 详细

zookeeper原理

时间:2014-11-30 00:41:16      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:hadoop   hadoop zookeeper   zookeeper   

1.为了解决分布式事务性一致的问题

2.文件系统也是一个树形的文件系统,但比linux系统简单,不区分文件和文件夹,所有的文件统一称为znode

3.znode的作用:存放数据,但上限是1M ;存放ACL(access control list)访问控制列表,每个znode被创建的时候,都会带有一个ACL,身份验证方式有三种:digest(用户名密码验证),host(主机名验证),ip(ip验证) ,ACL到底有哪些权限呢?create(增),delete(删)read (getChildren ,getData),write(写),admin(selectACL)

4.数据模型:短暂znode( zkCli.sh 客户端断掉连接之后,就不存在了)和持久znode

5顺序号:每个znode在创建的时候都会编一个号,按照那他们就会按照创建的时间编号,同样的父节点的znode共用一套编号(牛一,牛二,牛三),由父节点维护,是唯一的,锁机制要用到

6.观察(watch):观察子节点的变化,类似于我们传统关系型数据库中的触发器

7.操作:create delete setData getData exists(znode是否存在并且查询他的data) getACL setACL

8.集群是无中心的,只要有超过一半以上的节点没有down掉就能工作,出于这个原因,我们zookeeper的节点数通常要设置成奇数。

9.在整个集群没有down掉之前,至少有一个节点是最新的状态,这是通过Zap,该zap协议是包括2个无限重复的阶段:1.选举(选举出一个leader,其他节点就变成了follower)2.原子广播(所有写请求转发给leader,再由leader广播给各个follower,当半数以上follower将修改持久化后,leader才会提交这个更新,接下来客户端才会收到一个更新成功的响应)

10.应用:1.配置文件的同步(放一个watch,检测到数据改动后,立刻同步到其他节点,确保配置文件的一致性)2.锁机制的实现,比如很多客户端访问一个znode的资源,先给这个znode设置一个观察,观察节点的删除,其他客户端进来后,会添加一个对应的短暂znode,因为zookeeper的顺序号机制,给每个要访问资源的客户端对应的znode分配一个顺序号,通过对比顺序号,决定能不能使用这个资源

zookeeper原理

标签:hadoop   hadoop zookeeper   zookeeper   

原文地址:http://blog.csdn.net/u010414066/article/details/41416747

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!