Zookeeper本地安装
官网地址: https://zookeeper.apache.org
1. 安装前准备
- 安装JDK
- 下载Zookeeper,访问Zookeeper官网
- 上传服务器/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. 配置文件修改
- 将/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
- 打开zoo.cfg文件,修改dataDir路径
ini
dataDir=/opt/module/zookeeper-3.8.4/data
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
- 创建data文件夹
sh
[jack@hadoop102 zookeeper-3.8.4]$ mkdir data
- 修改启动脚本
在使用zookeeper3.6之后的版本,开启服务器,zk会自动占用8080端口,容易造成信息泄露。只需要在里面加上-Dzookeeper.admin.enableServer=false
即可。
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
- 查看状态
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
- 退出客户端
sh
[zk: localhost:2181(CONNECTED) 0] quit
- 停止Zookeeper
sh
[jack@hadoop102 zookeeper-3.8.4]$ sh bin/zkServer.sh stop
4. 配置参数解读
zoo.cfg文件主要参数配置说明如下:
- tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
- initLimit = 10:LF初始通信时限
Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
- syncLimit = 5:LF同步通信时限
Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
- dataDir:保存Zookeeper中的快照数据, Zookeeper的数据以树结构的形式在内存中存储,而快照就是每隔一段时间就会把整个DataTree的数据序列化后存储在磁盘中。
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。 - dataLogDir:保存zk的事务日志数据,事务日志指zookeeper系统在正常运行过程中,针对所有的更新操作,在返回客户端“更新成功”的响应前,zookeeper会保证已经将本次更新操作的事务日志已经写到磁盘上,只有这样,整个更新操作才会生效。
- clientPort = 2181:客户端连接端口,通常不做修改。
提示
建议将事务日志(dataLogDir)与快照日志(dataLog)单独配置,因为当zookeeper集群进行频繁的数据读写操作是,会产生大量的事务日志信息,将两类日志分开存储会提高系统性能。