Zookeeper 安装配置 伪集群搭建

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

安装

在zookeeper官网上推荐的清华镜像地址下载对应版本的zk安装包,以最新版本3.5.6举例,这里记住要下载带-bin的包

如果下载不带-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到同一目录下
  • 修改各自的配置文件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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章