用于集群管理的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文件与