ImageVerifierCode 换一换
格式:PPT , 页数:42 ,大小:1.93MB ,
文档编号:3704527      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3704527.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《大数据技术原理与操作应用》最新版精品课件第5章.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《大数据技术原理与操作应用》最新版精品课件第5章.ppt

1、大数据技术原理与操作应用最新版精品课件第5章2 学习目标学习目标了解掌握掌握熟悉了解Zookeeper概念和特性12掌握Zookeeper的Watch机制和选举机制4掌握Zookeeper集群部署、Zookeeper的Shell操作和Java API操作3熟悉Zookeeper数据模型、Zookeeper的应用场景本章通过对Zookeeper的简介、Zookeeper的数据模型、Zookeeper的机制、Zookeeper集群的部署、Zookeeper的操作以及Zookeeper的典型应用场景进行详细讲解。章节概要章节概要Apache Zookeeper旨在减轻构建健壮的分布式系统的服务。Zo

2、okeeper是基于分布式计算的核心概念而设计的,主要目的是给开发人员提供一套容易理解和开发的接口,从而简化分布式系统构建的服务。5.1 5.1 认识认识ZookeeperZookeeperZookeeper的简介的简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。5.1 5.1 认识认识ZookeeperZookeeperZookeeperZookeeper的特性的特性Zookeeper具有

3、全局数据一致性、可靠性、顺序性、原子性以及实时性,可以说Zookeeper的其他特性都是为满足Zookeeper全局数据一致性这一特性。全局数据一致性可靠性顺序性数据更新原子性实时性 5.15.1认识认识ZookeeperZookeeperZookeeperZookeeper集群角色集群角色Zookeeper集群是一个主从集群,它一般是由一个Leader(领导者)和多个Follower(跟随者)组成。此外,针对访问量比较大的Zookeeper集群,还可新增Observer(观察者)。Zookeeper集群中的三种角色各司其职,共同完成分布式协调服务。5.1 5.1 认识认识ZookeeperZ

4、ookeeperZookeeperZookeeper集群角色集群角色Leader是Zookeeper集群工作的核心,也是事务性请求(写操作)的唯一调度和处理者,保证集群事务处理的顺序性,同时负责进行投票的发起和决议,以及更新系统状态。Follower负责处理客户端的非事务(读操作)请求,如果接收到客户端发来的事务性请求,则会转发给Leader,让Leader进行处理,同时还负责在Leader选举过程中参与投票。Observer负责观察Zookeeper集群的最新状态的变化,并且将这些状态进行同步。对于非事务性请求可进行独立处理;对于事务性请求,则会转发给Leader服务器进行处理。它不参与任何

5、形式的投票,只提供非事务性的服务。LeaderFollowerObserver 5.2 5.2 数据模型数据模型数据存储结构数据存储结构Zookeeper的数据存储结构和标准文件系统非常类似,拥有一个层次命名空间,用斜杠进行分割,都采用树形层次结构,那Zookeeper是由什么组成树呢?5.2 5.2 数据模型数据模型数据存储结构数据存储结构Zookeeper是由节点组成的树,树中的每个节点被称为Znode。每个节点都可以拥有子节点。每一个Znode默认能够存储1MB的数据,每个Znode都可以通过其路径唯一标识,如图中第三层的第一个Znode,,它的路径是/app1/p_1。Zookeepe

6、r数据模型中每个Znode都是由三部分组成,分别是stat、data、children。5.2 5.2 数据模型数据模型ZnodeZnode的类型的类型Znode的类型在创建时被指定,一旦创建就无法改变。Znode有两种类型,分别是临时节点和永久节点。该生命周期依赖于创建它们的会话,一旦会话结束,临时节点将会被自动删除,也可以手动删除。虽然每个临时的Znode都会绑定一个客户端,但它们对所有的客户端还是可见的。需要注意的是临时节点不允许拥有子节点。临时节点永久节点该生命周期不依赖于会话,并且只有在客户端显示执行删除操作的时候,它们才能被删除。5.2 5.2 数据模型数据模型ZnodeZnode

7、的属性的属性Zookeeper中的每个Znode都包含了一系列的属性,具体属性如下所示。属性名称属性名称相关说明相关说明czxid节点被创建的时间ctime节点最后一次的修改的Zxid值mzxid节点最后一次的修改时间mtime与该节点的子节点最后一次修改的Zxid值pZxid子节点被修改的版本号cversion节点被创建的时间属性名称属性名称相关说明相关说明dataVersion数据版本号aclVersionACL版本号ephemeralOwner如果此节点为临时节点,那么该值代表这个节点拥有者的会话ID;否则值为0dataLength节点数据域长度numChildren节点拥有的子节点个数

8、 5.3 Zookeeper5.3 Zookeeper的的WatcherWatcher机制机制WatchWatch机制的简介机制的简介ZooKeeper可以为所有的读操作设置watch。watch事件是一次性的触发器,当watch的对象状态发生改变时,将会触发此对象上watch所对应的事件。watch事件将被异步地发送给客户端,并且ZooKeeper为watch机制提供了有序的一致性保证。理论上,客户端接收watch事件的时间要快于其看到watch对象状态变化的时间。5.3 Zookeeper5.3 Zookeeper的的WatcherWatcher机制机制WatchWatch机制的类型机制的

9、类型ZooKeeper所管理的watch可以分为两类:数据watch(data watches):getData和exists负责设置数据watch 孩子watch(child watches):getChildren负责设置孩子watch我们可以通过操作返回的数据来设置不同的watch:getData和exists:返回关于节点的数据信息 getChildren:返回孩子列表 5.3 Zookeeper5.3 Zookeeper的的WatcherWatcher机制机制WatchWatch机制的监听工作原理机制的监听工作原理一次性触发ZooKeeper的Watcher机制主要包括客户端线程、客

10、户端 WatcherManager、ZooKeeper 服务器三部分。客户端在向ZooKeeper服务器注册的同时,会将 Watcher对象存储在客户端的 WatcherManager当中。当ZooKeeper服务器触发Watcher事件后,会向客户端发送通知,客户端线程从WatcherManager中取出对应的Watcher对象来执行回调逻辑。5.4 Zookeeper5.4 Zookeeper的选举机制的选举机制选举机制的简介选举机制的简介Zookeeper为了保证各节点的协同工作,在工作时需要一个Leader角色,而Zookeeper默认采用FastLeaderElection算法,且投

11、票数大于半数则胜出的机制。选举ID数据ID逻辑时钟服务器ID设置集群myid参数时,参数分别为服务器1、服务器2、服务器3,编号越大FastLeaderElection算法中权重越大。选举过程中,Zookeeper服务器有四种状态,分别为竞选状态、随从状态、观察状态、领导者状态。是服务器中存放的最新数据版本号,该值越大则说明数据越新,在选举过程中数据越新权重越大。逻辑时钟被称为投票次数,同一轮投票过程中逻辑时钟值相同,逻辑时钟起始值为0,每投一次票,数据增加。与接收到其它服务器返回的投票信息中数值比较,根据不同值做出不同判断。5.4 Zookeeper5.4 Zookeeper的选举机制的选举

12、机制选举机制的类型选举机制的类型Zookeeper选举机制有两种类型,分别为全新集群选举和非全新集群选举。全新集群选举是新搭建起来的,没有数据ID和逻辑时钟的数据影响集群的选举;非全新集群选举时是优中选优,保证Leader是Zookeeper集群中数据最完整、最可靠的一台服务器。5.4 Zookeeper5.4 Zookeeper的选举机制的选举机制选举机制的类型选举机制的类型1.全新集群选举服务器1启动,先给自己投票;其次,发投票信息,由于其它机器还没有启动所以它无法接收到投票的反馈信息,因此服务器1的状态一直属于竞选状态。假设有5台编号分别是15的服务器,全新集群选举过程如下:步骤1:步骤

13、2:服务器2启动,先给自己投票;其次,在集群中启动Zookeeper服务的机器发起投票对比,它会与服务器1交换结果,由于服务器2编号大,服务器2胜出,服务器1会将票投给服务器2,此时服务器2的投票数并没有大于集群半数,两个服务器状态依旧是竞选状态。5.4 Zookeeper5.4 Zookeeper的选举机制的选举机制选举机制的类型选举机制的类型1.全新集群选举服务器5启动,同服务器4一样,均成为追随者状态。服务器3启动,先给自己投票;其次,与之前启动的服务器1、2交换信息,服务器3的编号最大,服务器3胜出,服务器1、2会将票投给服务器3,此时投票数正好大于半数,所以服务器3成为领导者状态,服

14、务器1、2成为追随者状态。步骤3:步骤4:服务器4启动,先给自己投票;其次,与之前启动的服务器1、2、3交换信息,尽管服务器4的编号大,但是服务器3已经胜,所以服务器4只能成为追随者状态。步骤5:5.4 Zookeeper5.4 Zookeeper的选举机制的选举机制选举机制的类型选举机制的类型2.非全新集群选举统计逻辑时钟是否相同,逻辑时钟小,则说明途中可能存在宕机问题,因此数据不完整,那么该选举结果被忽略,重新投票选举。步骤1:统一逻辑时钟后,对比数据ID值,数据ID反应数据的新旧程度,因此数据ID大的胜出。如果逻辑时钟和数据ID都相同的情况下,那么比较服务器ID(编号),值大则胜出。步骤

15、2:步骤3:5.5 Zookeeper5.5 Zookeeper分布式集群部署分布式集群部署Zookeeper分布式集群部署指的是ZooKeeper分布式模式安装。Zookeeper集群搭建通常是由2n+1台服务器组成,这是为了保证 Leader 选举(基于Paxos算法的实现)能够通过半数以上台服务器选举支持,因此,ZooKeeper集群的数量一般为奇数台。5.5 Zookeeper5.5 Zookeeper分布式集群部署分布式集群部署ZookeeperZookeeper安装包的下载安装安装包的下载安装由于Zookeeper集群运行需要Java环境支持,所以要提前安装JDK(对于jdk的下载

16、安装这里不作赘述)。Zookeeper安装包的下载安装,具体步骤如下:1下载Zookeeper安装包。Zookeeper的下载地址为:http:/ Zookeeper5.5 Zookeeper分布式集群部署分布式集群部署ZookeeperZookeeper相关配置相关配置修改Zookeeper的配置文件。先将zoo_sample.cfg配置文件重命名为zoo.cfg,然后指定dataDir目录、配置服务器编号与主机名映射关系、设置与主机连接的心跳端口和选举端口。步骤1:步骤2:创建myid文件。根据配置文件zoo.cfg设置的dataDir目录,创建zkdata文件夹并创建myid文件,该文件

17、里面的内容就是服务器编号。步骤3:配置环境变量。执行命令vi/etc/profile对profile文件进行修改,添加Zookeeper的环境变量 5.5 Zookeeper5.5 Zookeeper分布式集群部署分布式集群部署ZookeeperZookeeper相关配置相关配置分发Zookeeper相关文件至其他服务器。先将Zookeeper安装目录、myid文件以及profile文件分发至hadoop02、hadoop03服务器上,并且修改myid的文件内容,依次对应服务器号进行设置,分别为2、3。步骤4:步骤5:环境变量生效。分别在hadoop01、hadoop02、hadoop03服务

18、器上刷新profile配置文件,使环境变量生效。5.5 Zookeeper5.5 Zookeeper分布式集群部署分布式集群部署ZookeeperZookeeper服务的启动和关闭服务的启动和关闭1.启动Zookeeper服务在hadoop01、hadoop02、hadoop03服务器上依次启动Zookeeper服务。执行命令“zkServer.sh status”查看该节点Zookpeer的角色。步骤1:步骤2:5.5 Zookeeper5.5 Zookeeper分布式集群部署分布式集群部署ZookeeperZookeeper服务的启动和关闭服务的启动和关闭2.关闭Zookeeper服务在h

19、adoop01、hadoop02、hadoop03服务器上执行zkServer.sh stop关闭Zookeeper服务。执行命令“zkServer.sh status”查看该节点Zookpeer的角色。步骤1:步骤2:5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作ZookeeperZookeeper ShellShell介绍介绍常用命令命令描述ls/使用ls命令来查看Zookeeper中所包含的内容ls2/查看当前节点数据并能看到更新次数等数据create/zk“test”在当前目录创建一个新的Znode节点“zk”以及与它关联的字符串get/zk获取z

20、k所包含的信息set/zk“zkbak”对zk所关联的字符串进行设置delete/zk将节点Znode删除rmr将节点Znode递归删除help帮助命令Zookeeper命令行工具类似于Linux的Shell环境,能够简单地实现对Zookeeper进行访问、数据创建、数据修改等的一系列操作。5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper启动Zookeeper,并连接Zookeeper服务,系统会输出Zookeeper集群的相关配置信息,并在屏幕输出“welcome to Zoo

21、keeper!”等信息。5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper1.显示所有操作命令在客户端输入help,屏幕会输出所有可用的Shell命令。5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper2.查看当前Zookeeper中所包含的内容在客户端输入ls/,屏幕会输出Zookeeper中所包含的内容。5.6 Zookeeper5.6 Zookeeper的的She

22、llShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper3.查看当前节点数据在客户端输入ls2/,屏幕会输出当前节点数据并且能看到更新次数等数据。5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper4.创建节点在命令行输入创建节点的命令,来创建一个临时节点。5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper5.获取节点在命令行

23、输入获取节点的命令,来获取Zookeeper指定节点的数据内容以及属性信息。5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper6.修改节点在命令行输入修改节点的命令,对前面创建的临时节点testnode-temp进行修改,使得节点内容变成“123”的操作。5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper7.监听节点监听节点就是监听节点变化,概括为三个过程。客户端向服务

24、端注册Watch、服务端事件发生触发Watch、客户端回调Watch得到触发事件的情况。5.6 Zookeeper5.6 Zookeeper的的ShellShell操作操作通过通过ShellShell命令操作命令操作ZookeeperZookeeper8.删除节点使用delete命令删除节点时,若要删除的节点存在子节点,就无法删除该节点,必须先删除子节点,才可删除父节点。使用rmr命令递归删除节点,不论该节点下是否存在子节点,可以直接删除。5.7 Zookeeper5.7 Zookeeper的的Java APIJava API操作操作Zookeeper Java APIZookeeper Ja

25、va API介绍介绍Zookeeper API包含五个包:org.apache.zookeeperorg.apache.zookeeper.dataorg.apache.zookeeper.serverorg.apache.zookeeper.server.quorumorg.apache.zookeeper.server.upgrade 5.7 Zookeeper5.7 Zookeeper的的Java APIJava API操作操作Zookeeper Java APIZookeeper Java API介绍介绍org.apache.zookeeper包含Zookeeper类,这也是编程时最常

26、用的类文件,Zookeeper类提供的常用Java API方法。方法名称方法描述create创建节点delete删除节点exists判断节点是否存在get/setData获取/修改节点数据getChildren获取指定节点下的所有子节点列表 5.7 Zookeeper5.7 Zookeeper的的Java APIJava API操作操作通过通过Java APIJava API操作操作ZookeeperZookeeper启动Zookeeper服务并连接Zookeeper服务。步骤1:添加依赖。在Maven项目HadoopDemo添加Zookeeper相关的依赖。步骤2:在项目src文件夹下创建c

27、n.itcast.zookeepe包,并在包下创建ZookeeperTest.java文件,用于操作Zookeeper,例如创建节点、获取节点、修改节点、判断节点是否存在以及删除节点。步骤3:5.8 Zookeeper5.8 Zookeeper典型应用场景典型应用场景统一命名服务统一命名服务命名服务也是分布式系统中比较常见的一类场景。在分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源服务的地址,提供者等信息。应用场景:阿里开源的分布式服务框架Dubbo中使用ZooKeeper来作为其命名服务,维护全局的服务地址列表。5.8 Zookeeper5.8 Zookeeper典型应

28、用场景典型应用场景配置管理配置管理 程序总是需要配置的,如果程序分散部署在多台机器上,要逐个改变配置就变得困难。现在把这些配置全部放到ZooKeeper上去,保存在ZooKeeper的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 ZooKeeper的通知,然后从ZooKeeper获取新的配置信息应用到系统中就好。集群管理集群管理(1)机器的退出和加入流程所有机器约定在父目录GroupMembers下创建临时目录节点,然后监听父目录节点的子节点变化消息。一旦有机器宕机,该机器与ZooKeeper的连接断开,其所创建的临时目录节点被删除,所有其他机器都收到通知:某个机器目录被删除。于是,集群中的所有机器收到信息:有机器宕机了。新机器加入也是类似,所有机器收到通知:新机器目录增加,多了台新机器。(2)选举Master所有机器创建临时顺序编号目录节点,每次选取编号最小的机器作为 Master。而选举策略完全可以由管理员制定。41

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|