欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Zookeeper 安装配置 伪集群搭建

程序员文章站 2022-03-15 18:15:38
...

Zookeeper 安装配置 伪集群搭建

本文总结一下在Linux上Zookeeper的安装和配置

安装

在zookeeper官网上推荐的清华镜像地址下载对应版本的zk安装包,以最新版本3.5.6举例,这里记住要下载带-bin的包
Zookeeper 安装配置 伪集群搭建
如果下载不带-bin的包,启动zk时可能会报错Starting zookeeper … FAILED TO START
查看日志会看到如下错误

Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
配置
  • 解压,进入conf目录拷贝配置文件
cp -a zoo_sample.cfg zoo.cfg

默认端口2181,可自行修改,如有需要可以修改dataDir路径

  • bin/zkServer.sh start 启动zk服务
  • bin/zkServer.sh status 查看zk状态
  • bin/zkServer.sh stop 停止zk服务
  • bin/zkCli.sh 进入zk客户端操作界面
伪集群搭建

伪集群指的是在一台物理机上搭建zk集群

  • linux上解压三份zookeeper到同一目录下
    Zookeeper 安装配置 伪集群搭建
  • 修改各自的配置文件zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper1
clientPort=2181
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

tickTime 一次心跳的时间,单位是毫秒
initLimit 初始follower和leader连接并同步数据的超时时间,如果在该时间内没有半数以上的follower连接并同步成功的话,leader会放弃,并重新选举
syncLimit 一个follower和leader同步的时间,该时间内没有完成同步,会被leader丢弃,连接到该follower的客户端会自动连接到其他节点
分别指定各自的dataDir和clientPort,都加入如下集群配置
initLimit和syncLimit的数字表示有几个心跳时间 n * tickTime

server.myid=hostname:port1:port2
myid代表集群机器的序号
hostname代表机器域名
port1端口代表集群间数据通信的端口
port2端口代表集群间进行leader选举的端口
因为是伪集群,所以各自的两个通信端口要不一样

**注意:**修改各自的客户端端口,可以是2181、2182、2183
同时修改各自的dataDir路径

  • 增加myid文件
    在三份zk的数据目录(dataDir)下,创建名为myid的文件,内容为各自的id(分别是1、2、3)
  • 分别启动三台zookeeper服务
  • 查看状态,可以看到一台leader和两台follower,如果将leader服务关闭,集群将会重新选举leader
相关标签: 分布式 zookeeper