资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,从入门到精通,Zookeeper,讲师:,Cloudy,(北风网版权所有,),1,、,Zookeeper,熟悉和用途综述,1,Zookeeper,用途场景,Zookeeper,分布式,服务框架是,Apache Hadoop,的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理问题,,如:集群管理、统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式通知协调等。,越来越多的分布式计算开始强依赖,ZK,,比如,Storm,、,Hbase,Zookeeper,对分布式开发带来很多便利,用,ZK,的独有特性巧妙地解决了很多难题;很多分布式技术用到,Zookeeper,或多或少特性,尤其是新生代分布式技术几乎都会依赖,Zookeeper,特性,如,Hbase,、火爆的,Storm,。,为什么后来深入学习,Zookeeper,?,随着分布式应用的不断深入,需要对集群管理逐步透明化,监控集群和作业状态;可以充分利用,ZK,的独有特性。熟悉程度决定应用高度。,2,课程主要内容:,Zookeeper,详解、,Client,开发(,Java,)、场景案例开发、,ZK,集群,Web,界面、,Web,监控,Java,基础、,Linux,基础,Zookeeper,集群规模,机器节点,100+,3,ZK,Web,界面,node-zk-browser,Web,展示每个,path,的属性和数据,4,ZK,集群监控,taokeeper,5,ZK,体系结构,Server,端具有,fast fail,特性,非常健壮。,无单点,。不超过半数,Server,挂掉不影响提供服务。,Master/slave,主流模式,轻量级内存数据库,6,ZK,体系架构,数据模型、节点,类似文件系统的目录树型结构,同,Hadoop HDFS,:,节点,/NameService/Server1,唯一路径,(,Node,),且,携带数据,7,zookeeper,名字空间由节点,znode,构成,其组织方式类似文件系统,其中各个节点,相当于目录和文件,,通过路径作为,唯一标识,。与文件系统不同的是,每个节点具有与之对应的,数据内容,,同时也可以具有子节点。,zookeeper,用于存储协调数据,如状态、配置、位置等信息,每个节点存储的数据量很小,,KB,级别。,节点维护一个状态,stat,结构(包括数据变化的版本号、,ACL,变化、时间戳),以允许缓存验证与协调更新。每当节点数据内容改变,多一个版本号,类似,HBase,。客户端获取数据的同时也会获取数据版本号。节点的数据内容以原子方式读写。,节点具有一个访问控制列表(,Access Control List-ACL,)来约束访问操作,即具有权限控制。,8,Watches,Zookeeper,对,Node,的增、删、改、查都可触发监听,watch,事件是一次性触发器,当,watch,监视的数据发生变化时,通知设置了该,watch,的,client,,即,watcher,watch,事件,异步发送,至观察者,watch,是一次性触发的并且在获取,watch,事件和设置新,watch,事件之间有延迟,所以不能可靠的观察到节点的每一次变化,客户端监视一个节点,总是先获取,watch,事件,再发现节点的数据变化,watch,事件的顺序对应于,zookeeper,服务所见的数据更新的顺序,9,Storm,集群:,Zookeeper,作为,nimbus,(,master,)和,supervisor,(,slave,)的中间枢纽,保存,Storm,集群和作业的所有信息,并负责,nimbus,和,supervisor,的全部通信,,Fast faill,。,HBase,集群:,Zookeeper,作为“协调器”,为,HBase,提供了稳定服务和,fail over,机制。,HRegionServer,也会把自己以,Ephemeral,方式注册到,Zookeeper,中,使得,HMaster,可以随时感知到各个,HRegionServer,的健康状态(可用于监控,RegionServer,)。此外,,Zookeeper,也,避免了,HMaster,的单点问题,。,应用三大块:,Storm,应用开发,,Storm,集群监控,MapReduce,应用开发,HBase,应用开发,Zookeeper,在,Hadoop,平台典型应用,10,分布式应用配置管理,发布与订阅即所谓的配置管理,顾名思义就是将数据发布到,zk,节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,地址列表等就非常适合使用。,Name Service,这个主要是作为分布式命名服务,通过调用,zk,的,create node api,,能够很容易创建一个,全局唯一的,path,,这个,path,就可以作为一个名称。,序列化节点,流行的应用场景,11,分布式通知,/,协调,ZooKeeper,中特有,watcher,注册与异步通知机制,能够很好的实现分布式环境下,不同系统之间,的通知与协调,,实现对数据变更的实时处理,。,使用方法 通常是不同系统都对,ZK,上同一个,znode,进行,watch,,监听,znode,的变化(包括,znode,本身内容及子节点的),其中一个系统,update,了,znode,,那么另一个系统能够收到通知,并作出相应处理。,分布式锁,分布式锁,这个主要得益于,ZooKeeper,为我们保证了,数据的强一致性,,,zk,集群中任意节点(一个,zk server,)上的相同,znode,的数据是一定是相同的。,锁服务可以分为两类,,一个是保持独占,另一个是控制时序。,12,集群管理,Hbase Master,选举则是,zookeeper,经典的使用场景;,Storm,集群管理,分布式队列,队列方面,一种是常规的先进先出队列,另一种是要等到队列成员聚齐之后的才统一按序执行。对于第二种先进先出队列,增加分布式锁服务以控制时序场景,13,欢迎访问我们的官方网站,14,
展开阅读全文