没有合适的资源?快使用搜索试试~ 我知道了~
ZooKeeper入门简介及配置使用[整理].pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 67 浏览量
2021-10-12
02:05:14
上传
评论
收藏 1.34MB PDF 举报
温馨提示
试读
20页
ZooKeeper入门简介及配置使用[整理].pdf
资源推荐
资源详情
资源评论
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 的最近稳定版本。
http://hadoop.apache.org/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
clientPort=2181
在这个 ? 文件中,我们需要指定 dataDir 的值,它指向了 ? 一个 ? 目录,这个 ? 目录在开始的
时候需要为空。下 ? 面是每个参数的含义:
tickTime :基本事件单元,以毫秒为单位。它 ?用来指 ?示?心跳,最 ?小的 session 过期时 间
为两倍的 tickTime。
dataDir :存储内存中数据库快照的位置,如果不设置参数,更新事务 ?日志将被存储到默
认位置。
clientPort :监听客户端连接的端 ??口
使 ? 用单机模式时 ? 用户需要注意:这种配置 ? 方式下没有 ZooKeeper 副本,所以如果
ZooKeeper 服务器出现故障, ZooKeeper 服务将会停 ?止。
以下代码清单 A 是我们的根据 ? 自 ? 身情况所设置的 zookeeper 配置 ? 文档: zoo.cfg
代码清单 A : zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# the directory where the snapshot is stored.
dataDir=/root/hadoop-0.20.2/zookeeper-3.3.1/snapshot/data
# the port at which the clients will connect
clientPort=2181
2)集群模式
为了获得可靠的 ZooKeeper 服务, ? 用户应该在 ? 一个集群上部署 ZooKeeper 。只要集
群上 ? 大多数的 ZooKeeper 服务启动了,那么总的 ZooKeeper 服务将是可 ? 用的。另外,最好
使 ? 用奇数台机器。如果 zookeeper 拥有 5 台机器,那么它就能处理 2 台机器的故障了。
之后的操作和单机模式的安装类似,我们同样需要对 JAVA 环境进 ? 行设置,下载最
新的 ZooKeeper 稳定版本并配置相应的环境变量。不同之处在于每台机器上 conf/zoo.cfg
配置 ? 文件的参数设置,参考下 ? 面的配置:
tickTime=2000
dataDir=/var/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
“ server.id=host:port:port. ”指?示了不同的 ZooKeeper 服务器的 ?自?身标识,作为集群的
? 一部分的机器应该知道 ensemble 中的其它机器。 ? 用户可以从“ server.id=host:port:port. ”中
读取相关的信息。 在服务器的 data ( dataDir 参数所指定的 ? 目录) ? 目录下创建 ? 一个 ? 文件名
为 myid 的 ? 文件,这个 ? 文件中仅含有 ? 一 ? 行的内容,指定的是 ? 自 ? 身的 id 值。 ? 比如,服务器“
1 ”应该在 myid ?文件中写 ?入“ 1 ”。这个 id 值必须是 ensemble 中唯 ?一的,且 ?大?小在 1 到 255
之间。这 ? 一 ? 行配置中,第 ? 一个端 ?? 口( port )是从( follower )机器连接到主( leader )机
器的端 ?? 口,第 ? 二个端 ?? 口是 ? 用来进 ? 行 leader 选举的端 ?? 口。在这个例 ? 子中,每台机器使 ? 用三个
端 ?? 口,分别是: clientPort , 2181 ; port , 2888 ; port , 3888 。
我们在拥有三台机器的 Hadoop 集群上测试使 ? 用 ZooKeeper 服务,下 ? 面代码清单 B
是我们根据 ? 自 ? 身情况所设置的 ZooKeeper 配置 ? 文档:
代码清单 B : zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
剩余19页未读,继续阅读
资源评论
czq131452007
- 粉丝: 2
- 资源: 12万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功