7ZooKeeper详解.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ZooKeeper详解主要内容ZooKeeper概述安装和运行ZooKeeperZooKeeper结构与原理ZooKeeper服务使用ZooKeeper构建应用什么是Zookeeper?Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等什么是Zookeeper?为什么使用Zookeeper?需要一个主控的协调器来管理物理分布的子进程(如资源、任务分配等)需要开发私有的协调程序,但是缺乏一个通用的机制,协调程序的反复编写不仅造成浪费,且难以形成通用、伸缩性好的协调器ZooKeeper提供通用的分布式锁服务,用以协调分布式应用Zookeeper解耦系统结构Hadoop问:一个NameNode是否可以保证可靠性和一致性?答:完全可以HbaseZookeeper集群:HRegionServer联机和宕机,存储访问控制列表等一个HMasterr+N个Region ServerZookeeper的特性Zookeeper是简单的Zookeeper是富有表现力的Zookeeper具有高可用性Zookeeper采用松耦合交互方式Zookeeper是一个资源库Zookeeper的安装和配置创建myid文件,server1机器的内容为:1,server2机器的内容为:2,server3机器的内容为:3在conf目录下创建一个配置文件zoo.cfg,tickTime=2000 initLimit=5 syncLimit=2 dataDir=/home/hadoop/zookeeper/data clientPort=2181 server.1=server1:2888:3888 server.2=server2:2888:3888 server.3=server3:2888:3888Zookeeper的数据模型层次化的目录结构,命名符合常规文件系统规范。每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标示。节点Znode可以包含数据和子节点Znode中的数据可以有多个版本,比如某一个路径下存有多个数据版本,那么查询这个路径下的数据就需要带上版本ZnodeZnode有两种类型,短暂的(ephemeral)和持久的(persistent)Znode的类型在创建时确定并且之后不能再修改短暂znode的客户端会话结束时,zookeeper会将该短暂znode删除,短暂znode不可以有子节点持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除Zookeeper的角色Zookeeper的读写机制Zookeeper是一个由多个server组成的集群一个leader,多个follower每个server保存一份数据副本全局数据一致分布式读写更新请求转发,由leader实施Zookeeper的保证更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行数据更新原子性,一次数据更新要么成功,要么失败全局唯一数据视图,client无论连接到哪个server,数据视图都是一致的实时性,client能读到最新数据Zookeeper的API接口String create(String?path, byte[]?data, ListACL?acl, CreateMode?createMode) Stat exists(String?path, boolean?watch) void delete(String?path, int?version) ListString getChildren(String?path, boolean?watch) ListString getChildren(String?path, boolean?watch) Zookeeper的API接口Stat setData(String?path, byte[]?data, int?version) byte[] getData(String?path, boolean?watch, Stat?stat) void addAuthInfo(String?scheme, byte[]?auth) Stat setACL(String?path, ListACL?acl, int?version) ListACL getACL(String?path, Stat?stat) 观察(watcher)Watcher 在 ZooKeeper 是一个核心功能监控目录节点的数据变化以及子目录的变化,一旦这些状态发

文档评论(0)

有一二三 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档