一、环境要求
- JDK运行环境 1.8+
- Zookeeper 版本:Apache ZooKeeper 3.6.1
二、下载
官网地址:https://zookeeper.apache.org/
Getting Started ->Download ZooKeeper from the release page.
[root@VM_0_13_centos local]# wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
三、安装
3.1 解压
[root@VM_0_13_centos local]# tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz
3.2 配置修改
3.2.1将 zookeeper-3.4.10/conf这个 路径下的 zoo_sample.cfg修改 为 zoo.cfg
[root@VM_0_13_centos apache-zookeeper-3.6.1-bin]# cd conf/
[root@VM_0_13_centos conf]# ll
total 12
-rw-r--r-- 1 zerah zerah 535 Apr 21 22:59 configuration.xsl
-rw-r--r-- 1 zerah zerah 3435 Apr 21 22:59 log4j.properties
-rw-r--r-- 1 zerah zerah 1148 Apr 21 22:59 zoo_sample.cfg
[root@VM_0_13_centos conf]# mv zoo_sample.cfg zoo.cfg
3.2.2 打开zoo.cfg 文件,修改dataDir路径
[root@VM_0_13_centos conf]# pwd
/usr/local/apache-zookeeper-3.6.1-bin/conf
[root@VM_0_13_centos conf]# vi zoo.cfg
修改zk数据目录路径
dataDir=/usr/local/apache-zookeeper-3.6.1-bin/zkData
修改默认端口(修改后客户端连不上,没有找到客户端的端口配置,所以我又改成2181了)
13 # the port at which the clients will connect
14 clientPort=2182
3.2.3 在/usr/local/apache-zookeeper-3.6.1-bin/的目录下创建zkData文件
[root@VM_0_13_centos conf]# cd ../
[root@VM_0_13_centos apache-zookeeper-3.6.1-bin]# mkdir zkData
四、操作ZK
4.1 启动zk
启动前先看下本机的java进程
[root@VM_0_13_centos ~]# jps
19058 Jps
32534 jar
启动
[root@VM_0_13_centos bin]# ll
total 64
-rwxr-xr-x 1 zerah zerah 232 Apr 21 22:59 README.txt
-rwxr-xr-x 1 zerah zerah 2066 Apr 21 22:59 zkCleanup.sh
-rwxr-xr-x 1 zerah zerah 1158 Apr 21 22:59 zkCli.cmd
-rwxr-xr-x 1 zerah zerah 1620 Apr 21 22:59 zkCli.sh
-rwxr-xr-x 1 zerah zerah 1843 Apr 21 22:59 zkEnv.cmd
-rwxr-xr-x 1 zerah zerah 3690 Apr 21 22:59 zkEnv.sh
-rwxr-xr-x 1 zerah zerah 1286 Apr 21 22:59 zkServer.cmd
-rwxr-xr-x 1 zerah zerah 4559 Apr 21 22:59 zkServer-initialize.sh
-rwxr-xr-x 1 zerah zerah 9515 Apr 21 22:59 zkServer.sh
-rwxr-xr-x 1 zerah zerah 988 Apr 21 22:59 zkSnapShotToolkit.cmd
-rwxr-xr-x 1 zerah zerah 1377 Apr 21 22:59 zkSnapShotToolkit.sh
-rwxr-xr-x 1 zerah zerah 996 Apr 21 22:59 zkTxnLogToolkit.cmd
-rwxr-xr-x 1 zerah zerah 1385 Apr 21 22:59 zkTxnLogToolkit.sh
[root@VM_0_13_centos bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTE
4.2 再看下Java进程,发现QuorumPeerMain
[root@VM_0_13_centos ~]# jps
19249 QuorumPeerMain
19362 Jps
32534 jar
4.3 查看zk状态
[root@VM_0_13_centos bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone
4.4 启动客户端
[root@VM_0_13_centos bin]# ./zkCli.sh
Connecting to localhost:2181
4.5 退出客户端
[zk: localhost:2181(CONNECTED) 0] quit
4.6 停止zk
[root@VM_0_13_centos bin]# ./zkServer.sh stop
五、配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
5.1.tickTime =2000 通信心跳数 Zookeeper服务器 与 客户端 心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间
维持心跳
的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制
,并且设置最小的session超时时间为两倍心跳时间
。(session的最小超时时间是2*tickTime)
5.2 initLimit =10 LF初始通信时限
集群中的Follower跟随者服务器与Leader领导者服务器之间
初始连接时
能容忍的最多心跳数
(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
5.3 syncLimit =5 LF同步通信时限
集群中Leader与Follower之间的
最大响应时间
单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
5.4 dataDir:数据文件目录 +数据持久化路径
主要用于保存 Zookeeper中的数据 。
5.5 clientPort =2181:客户端连接端口
监听客户端连接的端口