Skip to content

Zookeeper本地安装

官网地址: https://zookeeper.apache.orgAlt text

1. 安装前准备

  1. 安装JDK
  2. 下载Zookeeper,访问Zookeeper官网
    Alt text
  3. 上传服务器/opt/software/目录下,解压到指定目录
sh
[jack@hadoop102 software]$ tar -xvf apache-zookeeper-3.8.4-bin.tar.gz -C /opt/module/
[jack@hadoop102 software]$ cd /opt/module/
[jack@hadoop102 module]$ mv apache-zookeeper-3.8.4-bin/  zookeeper-3.8.4

2. 配置文件修改

  1. 将/opt/module/zookeeper-3.8.4/conf/zoo_sample.cfg复制为zoo.cfg
sh
[jack@hadoop102 zookeeper-3.8.4]$ cp conf/zoo_sample.cfg conf/zoo.cfg
  1. 打开zoo.cfg文件,修改dataDir路径
ini
dataDir=/opt/module/zookeeper-3.8.4/data
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
  1. 创建data文件夹
sh
[jack@hadoop102 zookeeper-3.8.4]$ mkdir data
  1. 修改启动脚本
    在使用zookeeper3.6之后的版本,开启服务器,zk会自动占用8080端口,容易造成信息泄露。只需要在里面加上-Dzookeeper.admin.enableServer=false即可。 Alt text

3. 启动Zookeeper

3.1 使用zk自带脚本启动

sh
[jack@hadoop102 zookeeper-3.8.4]$ sh bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.8.4/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

在windows系统中启动

cmd
@@ 不需要加上start参数
D:\zookeeper-3.8.4\bin>zkServer.cmd

3.2 查看进程是否启动

sh
[jack@hadoop102 zookeeper-3.8.4]$ jps
19856 Jps
87888 DataNode
88212 NodeManager
87767 NameNode
19783 QuorumPeerMain
88382 JobHistoryServer
  1. 查看状态
sh
[jack@hadoop102 zookeeper-3.8.4]$ sh bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.8.4/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone

其中standalone就是本地模式。
4. 启动客户端

sh
[jack@hadoop102 zookeeper-3.8.4]$ sh bin/zkCli.sh
  1. 退出客户端
sh
[zk: localhost:2181(CONNECTED) 0] quit
  1. 停止Zookeeper
sh
[jack@hadoop102 zookeeper-3.8.4]$ sh bin/zkServer.sh stop

4. 配置参数解读

zoo.cfg文件主要参数配置说明如下:

  1. tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
    Alt text
  2. initLimit = 10:LF初始通信时限
    Alt text Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
  3. syncLimit = 5:LF同步通信时限 Alt text Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
  4. dataDir:保存Zookeeper中的快照数据, Zookeeper的数据以树结构的形式在内存中存储,而快照就是每隔一段时间就会把整个DataTree的数据序列化后存储在磁盘中。
    注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。
  5. dataLogDir:保存zk的事务日志数据,事务日志指zookeeper系统在正常运行过程中,针对所有的更新操作,在返回客户端“更新成功”的响应前,zookeeper会保证已经将本次更新操作的事务日志已经写到磁盘上,只有这样,整个更新操作才会生效。
  6. clientPort = 2181:客户端连接端口,通常不做修改。

提示

建议将事务日志(dataLogDir)与快照日志(dataLog)单独配置,因为当zookeeper集群进行频繁的数据读写操作是,会产生大量的事务日志信息,将两类日志分开存储会提高系统性能。