原创

安装Zookeeper

温馨提示:
本文最后更新于 2018年04月06日,已超过 2,422 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集, [1] 提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

1.下载zookeeper安装包

建议下载3.4.5及以上的版本
http://www.apache.org/dyn/closer.cgi/zookeeper/

2.下载完毕之后,解压文件

tar -zxvf zookeeper-3.4.7.tar.gz -C  /export/servers/
cd /export/servers
ln -s zookeeper-3.4.7 zookeeper

3.修改配置文件

cd  /export/servers/zookeeper/conf
 mv zoo_sample.cfg zoo.cfg
 vi zoo.cfg

输入以下内容:

#基本事件单元,以毫秒为单位。它用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的 tickTime
tickTime=2000

#此配置表示,允许 follower (相对于 leader 而言的“客户端”)连接并同步到 leader 的初始化连接时间,它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败
initLimit=10

#此配置表示, leader 与 follower 之间发送消息,请求和应答时间长度。如果 follower 在设置的时间内不能与 leader 进行通信,那么此 follower 将被丢弃
syncLimit=5

#数据目录. 可以是任意目录,其中的dataDir目录和dataLogDir需要提前建立好

#注意 应该谨慎地选择日志存放的位置,使用专用的日志存储设备能够大大地提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会在很大程度上影响系统的性能。
dataDir=/export/servers/data/zookeeper

#log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置,其中的dataDir目录和dataLogDir需要提前建立好

#注意 应该谨慎地选择日志存放的位置,使用专用的日志存储设备能够大大地提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会在很大程度上影响系统的性能。
dataLogDir=/export/servers/logs/zookeeper

#监听client连接的端口号.
clientPort=2181

#这个操作将限制连接到 ZooKeeper 的客户端的数量,限制并发连接的数量,它通过 IP 来区分不同的客户端。此配置选项可以用来阻止某些类别的 Dos 攻击。将它设置为 0 或者忽略而不进行设置将会取消对并发连接的限制。
maxClientCnxns=0

#最小的会话超时时间以及最大的会话超时时间。

#其中,最小的会话超时时间默认情况下为 2 倍的 tickTme 时间

#最大的会话超时时间默认情况下为 20 倍的会话超时时间
minSessionTimeout=4000
maxSessionTimeout=10000

#server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口.

#在之前设置的dataDir中新建myid文件, 写入一个数字, 该数字表示这是第几号server. 该数字必须和zoo.cfg文件中的server.X中的X一一对应.
server.1=192.168.52.106:2888:3888
server.2=192.168.52.107:2888:3888
server.3=192.168.52.108:2888:3888

4.创建zk的数据目录和日志目录

mkdir -p /export/servers/data/zookeeper
mkdir -p /export/servers/logs/zookeeper

5.在数据目录下创建zk节点的编号

在上文中 /export/servers/data/zookeeper 的目录下,创建myid文件。
myid文件的内容,根据所属主机编号来编写。
解释:
创建数据目录,也就是在你zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid头部写入1即可.

6.分发修改后的安装文件

   scp zookeeper-3.4.6 hadoop02:/export/servers/
   scp zookeeper-3.4.6 hadoop03:/export/servers/

7.在分发后的机器上,执行步骤5的操作。

创建数据目录,也就是在你zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid头部写入1即可.

## 8.在所有 所有 所有机器上配置环境变量   
       #set ZK env
        export ZK_HOME=/export/servers/zk
        export PATH=${ZK_HOME}/bin:$PATH

9.在所有 所有 所有机器上让配置文件生效

source  /etc/profile

10.启动zk集群

依次在不同的节点上,输入zkServers.sh start

11.查看zk集群的状态

依次在不同的节点上,输入zkServers.sh status
只有一个主节点,leader 其他都是follow

本文目录