文档详情

ZooKeeper入门简介及配置使用.pdf

发布:2019-03-25约2.12万字共20页下载文档
文本预览下载声明
ZooKeeper系列之⼀:ZooKeeper简介 ZooKeeper 是⼀个为分布式应⽤所设计的分布的、开源的协调服务。分布式的应⽤ 可以建⽴在同步、配置管理、分组和命名等服务的更⾼级别的实现的基础之上。 ZooKeeper 意欲设计⼀个易于编程的环境,它的⽂件系统使⽤我们所熟悉的⽬录树结构。 ZooKeeper 使⽤ Java 所编写,但是⽀持 Java 和 C 两种编程语⾔。 众所周知,协调服务⾮常容易出错,但是却很难恢复正常,例如,协调服务很容易处于 竞态以⾄于出现死锁。我们设计 ZooKeeper 的⽬的是为了减轻分布式应⽤程序所承担的协 调任务。 ZooKeeper系列之⼆:ZooKeeper数据模型、命名空 间以及节点的概念 ZooKeeper数据模型和层次命名空间 提供的命名空间与标准的⽂件系统⾮常相似。⼀个名称是由通过斜线分隔开的路径名 序列所组成的。ZooKeeper 中的每⼀个节点是都通过路径来识别。 下图是Zookeeper 中节点的数据模型,这种树形结构的命名空间操作⽅便且易于理解。 图:ZooKeeper层次命名空间 ZooKeeper中节点和临时节点 ZooKeeper 的节点是通过像树⼀样的结构来进⾏维护的,并且每⼀个节点通过路径来 标⽰以及访问。除此之外,每⼀个节点还拥有⾃⾝的⼀些信息,包括:数据、数据长度、 创建时间、修改时间等等。从这样⼀类既含有数据,又作为路径表标⽰的节点的特点中, 可以看出,ZooKeeper的节点既可以被看做是⼀个⽂件,又可以被看做是⼀个⽬录,它同 时具有⼆者的特点。为了便于表达,今后我们将使⽤Znode来表⽰所讨论的ZooKeeper节 点。 具体地说,Znode维护着数据、ACL (access control list ,访问控制列表)、时间戳等 交换版本号等数据结构,它通过对这些数据的管理来让缓存⽣效并且令协调更新。每当 Znode 中的数据更新后它所维护的版本号将增加,这⾮常类似于数据库中计数器时间戳的 操作⽅式。 另外Znode还具有原⼦性操作的特点:命名空间中,每⼀个Znode的数据将被原⼦地 读写。读操作将读取与Znode相关的所有数据,写操作将替换掉所有的数据。除此之外, 每⼀个节点都有⼀个访问控制列表,这个访问控制列表规定了⽤户操作的权限。 ZooKeeper 中同样存在临时节点。这些节点与session同时存在,当session⽣命周期结束, 这些临时节点也将被删除。临时节点在某些场合也发挥着⾮常重要的作⽤。 ZooKeeper系列之三:ZooKeeper的安装 ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone )、集群模式和集群伪 分布模式。ZooKeeper 单机模式的安装相对⽐较简单,如果第⼀次接触ZooKeeper的话, 建议安装ZooKeeper单机模式或者集群伪分布模式。 1)单机模式 ⾸先,从Apache官⽅⽹站下载⼀个ZooKeeper 的最近稳定版本。 /zookeeper/releases.html ZooKeeper 要求 JAVA 的环境才能运⾏,并且需要 JAVA6 以上的版本,可以从 SUN 官⽹上下载,并对 JAVA 环境变量进⾏设置。除此之外,为了今后操作的⽅便,我们需要 对 ZooKeeper 的环境变量进⾏配置,⽅法如下,在 /etc/profile ⽂件中加⼊如下的内容: #Set ZooKeeper Enviroment export ZOOKEEPER_HOME=/root/hadoop-0.20.2/zookeeper-3.3.1 export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf ZooKeeper 服务器包含在单个 JAR ⽂件中,安装此服务需要⽤户创建⼀个配置⽂ 档,并对其进⾏设置。我们在 ZooKeeper-*.*.* ⽬录(我们以当前 ZooKeeper 的最新版 3.3.1 为例,故此下⾯的“ ZooKeeper-*.*.* ”都将写为“ ZooKeeper-3.3.1” )的 conf ⽂件夹下 创建⼀个 zoo.cfg ⽂件,它包含如下的内容: tickTime=2000 dataDir=/var/zookeeper
显示全部
相似文档