1.单机配置

#获取软件包
wget https://us.mirrors.quenda.co/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
#解压软件到指定目录 /usr/localhost/zookeeper
mkdir /usr/local/zookeeper
tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz -C /usr/local/zookeeper

#进入 zk 目录
cd /usr/local/zookeeper/apache-zookeeper-3.6.1-bin/conf
#初始化配置文件
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
#添加以下配置--zk数据存储,日志目录
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/apache-zookeeper-3.6.1-bin/data
dataLogDir=/usr/local/zookeeper/apache-zookeeper-3.6.1-bin/logs

#创建配置目录
mkdir /usr/local/zookeeper/apache-zookeeper-3.6.1-bin/data
mkdir /usr/local/zookeeper/apache-zookeeper-3.6.1-bin/logs


#启动
zkServer.sh status
#查看状态
zkServer.sh status

亦可以配置环境变量

#配置
vim /ect/profile
#添加 java 环境变量
export ZOOKEEPER_PREFIX=/usr/local/zookeeper/apache-zookeeper-3.6.1-bin
export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
#export ZOO_LOG_DIR= zk日志路径

#重新加载
source /etc/profile

#启动
zkServer.sh status
#查看状态
zkServer.sh status

2. 集群配置

#集群配置
vi /usr/local/zookeeper/apache-zookeeper-3.6.1-bin/conf/zoo.cfg
#添加以下配置--zk数据存储,日志目录
dataDir=/usr/local/zookeeper/apache-zookeeper-3.6.1-bin/data
dataLogDir=/usr/local/zookeeper/apache-zookeeper-3.6.1-bin/logs
#添加集群服务器信息
server.0=192.168.202.135:2888:3888
server.1=192.168.202.136:2888:3888
server.2=192.168.202.134:2888:3888

#设置 myid 与 service.x  对应
cd /usr/local/zookeeper/apache-zookeeper-3.6.1-bin/data
touch myid
#内容
0

将 zk 复制到 其他 机器,按照集群信息配置  myid 值

192.168.202.134 为 2   192.168.202.136 为 1

依次zk 启动即可

cd /usr/local/zookeeper/apache-zookeeper-3.6.1-bin/bin
./zkServer.sh start
./zkServer.sh status

全部正常启动显示如下日志

1.单机配置-LMLPHP

1.单机配置-LMLPHP

1.单机配置-LMLPHP

如果是集群部署 只启动一个查看状态

1.单机配置-LMLPHP

为正常情况,全部启动 如上面日志 为正常

如果还是显示 上图日志 ,请查看  zk 的 /usr/local/zookeeper/apache-zookeeper-3.6.1-bin/logs 目录,查看日志,根据日志解决问题

3.zoo.cfg 常用参数说明

tickTime

基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime

dataDir

存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。

client 监听客户端连接的端口
initLimit 允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败
syncLimit 表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃
server.A=B:C:D

A:其中 A 是一个数字,表示这个是服务器的编号; B:是这个服务器的 ip 地址; C:Leader选举的端口;D:Zookeeper服务器之间的通信端口。

04-16 16:04