编辑: 于世美 | 2019-07-03 |
edu.cn 2013年9月修订版 厦门大学计算机科学系 2013年新版 林子雨 厦门大学计算机科学系 E-mail: [email protected] 主页:http://www.cs.xmu.edu.cn/linziyu 第6章Zookeeper (2013年新版) 厦门大学计算机科学系研究生课程 《大数据技术基础》 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 提纲 ? Zookeeper简介 ? Zookeeper的工作原理 ? Zookeeper的数据模型 ? Zookeeper的典型应用场景 ? 小结 本讲义PPT存在配套教材,由林子雨通过大量 阅读、收集、整理各种资料后编写而成 下载配套教材请访问《大数据技术基础》2013 班级网站:http://dblab.xmu.edu.cn/node/423 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版
1、Zookeeper简介 ? Zookeeper是Hadoop的一个子项目,是一种分布式的、开源的、应用 于分布式应用的协作服务,主要是用来解决分布式应用中经常遇到的 一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、 分布式应用配置项的管理等.Zookper很容易编程接入,它使用了一 个和文件树结构相似的数据模型.可以使用Java或者C来进行编程接 入. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 1.1系统架构 Zookeeper不仅可以单机提供服务,同时也支持多机组成集群来提供服务(如图1所示).实际上 Zookeeper还支持另外一种伪集群的方式,也就是可以在一台 物理机上运行多个Zookeeper实例. 图1 Zookeeper的系统架构图 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 Zookeeper中的角色 Zookeeper中的角色主要包括领导者、学习者和客户端,如下表所示. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 1.2设计目的 Zookeeper的设计目的包括以下几个方面: ? 最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是 zookeeper最重要的性能;
? 可靠性:具有简单、健壮、良好的性能,如果消息被其中一台服务器接受, 那么它将被所有的服务器接受;
? 实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新 信息,或者服务器失效的信息;
但由于网络延时等原因,Zookeeper不能保 证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据 之前调用sync()接口;
? 等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求 ,使得每个client都能有效的等待;
? 原子性:更新只能成功或者失败,没有中间状态;
? 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a 在消息b前发布,则在所有Server上消息a都将在消息b前被发布;
偏序是指如 果一个消息b在消息a后被同一个发送者发布,a必将排在b前面. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 1.3特点 Zookeeper的特点主要包括以下几个方面: z 简易性:通过一种和文件系统很像的层级命名空间来让分布式进程互 相协同工作,实现了高性能、高可靠性和有序的访问. z 可用性:组成Zookeeper的各个服务器之间能够相互通信,在内存中 保存服务器状态,也保存了操作日志,并且持久化快照,只要大多数 服务器是可用的,那么,Zookeeper就是可用的. z 有序性:使用数字来对每个更新进行标记,保证Zookeeper交互的有 序. z 高效性:表现在以读为主的系统上. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版