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
全部正常启动显示如下日志
如果是集群部署 只启动一个查看状态
为正常情况,全部启动 如上面日志 为正常
如果还是显示 上图日志 ,请查看 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服务器之间的通信端口。 |