用于集群管理的Zookeeper的一步分布式开发
大数据处理
大数据开发
浏览:716 次

说到Zookeeper的分布式开发,我们必须理解并掌握它。分布式大数据处理(如kafka、hbase和hadoop)将使用Zookeeper,因此我们将在这里解释Zookeeer作为基础。
Zookeeper是一个分布式服务框架,主要用于解决分布式应用中经常遇到的一些数据管理问题,如统一命名服务、状态同步服务、集群管理、分布式应用配置项管理等。
Zookeeper的核心是广播,这确保了服务器之间的同步。实现此机制的协议称为Zab协议。
Zab协议有两种模式:恢复模式(主选择)和广播模式(同步)。当服务启动或领导者崩溃时,Zab进入恢复模式。当领导者被选中并且大多数服务器完成与领导者的状态同步时,恢复模式结束。
状态同步确保领导者和服务器具有相同的系统状态。为了确保事务的顺序一致性,ZooKeeper使用递增的事务id(zxid)来标识事务。
所有提案都与zxid一起提交。在实现中,zxid是一个64位数字。它的高32位是用于识别领导者关系是否已改变的时期。每次选择领导人时,都会有一个新的纪元来标识该领导人的当前统治时期。低32位用于向上计数。
每台服务器在工作期间有三种状态:
查找:当前服务器不知道领导者是谁,但正在搜索。
领导:当前服务器是当选的领导。
以下:领导人已当选,当前服务器与其同步。
ZooKeeper可以以三种模式安装:单机模式、集群模式和集群伪分发模式
环境
CentOS7.0(在Windows中使用zkServer.cmd)
ZooKeeper最新版本
使用root用户安装(使用hbase时将所有文件权限更改为hadoop用户)
Java环境,最好是最新版本。
分布式时,应确保多台计算机之间的正常通信,防火墙应关闭或相关端口应通过。

下载
前往官方网站下载:http://zookeeper.apache.org/releases.html#download
下载后,将其放在CentOS的/usr/local/文件夹中,并将其解压缩到当前文件/usr/local/zookeeper中(有关如何解压缩,请参阅上一篇Haproxy安装文章)
安装
单机模式
进入zookeeper目录下的conf子目录并重命名zoo_ sample。cfg文件。Zookeeper将在启动时找到此文件作为默认配置文件:
mv/usr/local/zookeeper/conf/zoo_sample。cfg动物园.cfg
配置动物园。cfg参数
#每个ticktickTime的毫秒数=2000#初始#同步阶段可以执行的tick数initLimit=10#在#发送请求和获取确认syncLimit之间可以传递的tick数量=5#存储快照的目录。#不要将/tmp用于存储,这里的/tmp只是示例sakes.dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log#客户端将连接的端口clientPort=2181#
#在打开自动冲洗之前,请务必阅读#管理员指南的维护部分#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance#
#要保留在dataDir#autopurge中的快照数。snapRetainCount=3#清除任务间隔(小时)#设置为“0”以禁用自动清除功能#autopurge.purgeInterval=1
参数说明:
TickTime:毫秒值此时间用作Zookeeper服务器之间或客户端与服务器之间的时间间隔,以保持心跳。也就是说,每个tickeTime都会发送一个心跳。
DataDir:顾名思义,它是Zookeeper保存数据的目录。默认情况下,Zookeeper还保存将数据写入该目录的日志文件。
DataLogDir:顾名思义,它是Zookeeper保存日志文件的目录

ClientPort:此端口是客户端连接到Zookeeper服务器的端口。Zookeeper将侦听此端口并接受客户端的访问请求。
然后创建上面配置的数据和日志文件夹:
mkdir/usr/local/zookeeper/data
mkdir/usr/local/zookeeper/log
启动动物园管理员
首先输入/usr/local/zookeeper文件夹
cd/usr/local/zookeeper
重新运行
bin/zkServer。sh启动
检测成功启动:执行
bin/zkCli.sh
或
echo stat|nc localhost 2181
伪群集模式
所谓的伪集群是指在一台机器上启动多个动物园管理员进程,并形成一个集群。以启动三个动物园管理员流程为例,模拟三台机器。
复制动物园管理员的目录,再复制两份:
动物园管理员/conf/zoo。cfg文件与