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

zookeeper集群部署

程序员文章站 2024-03-14 21:39:05
...

集群环境

主机操作系统:Ubuntu-16.04-x64
主机列表:
    zk1: 192.168.103.15
    zk2: 192.168.103.5
    zk3: 192.168.103.3
jdk环境:jdk1.8

安装步骤

1. 下载zookeeper

从apache 官网下载zookeeper,这里选择3.4.6版本。

$ cd /opt/
$ wget  https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

修改zk1, zk2, zk3 主机/etc/hosts文件

192.168.103.15  zk1
192.168.103.5   zk2
192.168.103.3   zk3

2. 解压并创建目录

$ cd /opt/
$ tar -zxf  zookeeper-3.4.6.tar.gz
$ cd zookeeper-3.4.6

创建data目录用于存储数据文件

$ mkdir /opt/zookeeper-3.4.6/data

在data目录下创建myid文件

$ touch /opt/zookeeper-3.4.6/data/myid

3. 配置zookeeper

$ vim /opt/zookeeper-3.4.6/conf/zoo.cfg

编辑如下内容

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper-3.4.6/data
clientPort=2181
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888

配置文件描述
tickTime

  • The number of milliseconds of each tick
  • 系统心跳间隔,单位为毫秒。如tickTime = 100,则心跳周期为100ms。

dataDir

  • the directory where the snapshot is stored.do not use /tmp for storage, /tmp here is just example sakes.
  • 存放数据快照的路径

dataLogDir

  • 存放日志的路径

initLimit

  • The number of ticks that the initial synchronization phase can take
  • 当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间

syncLimit

  • The number of ticks that can pass between sending a request and getting an acknowledgement
  • 配置follower和leader之间发送消息,请求和应答的最大时间长度。

clientPort

  • the port at which the clients will connect
  • zookeeper服务端口

server.id=host:port1:port2

  • server.id 其中id为一个数字,表示zk进程的id,这个id也是data目录下myid文件的内容
  • host 是该zk进程所在的IP地址
  • port1 表示follower和leader交换消息所使用的端口
  • port2 表示选举leader所使用的端口

4. 复制到集群

  • zk2

    $ scp  -r  aaa@qq.com:/opt/zookeeper-3.4.6/  .
    
  • zk3

    $ scp  -r  aaa@qq.com:/opt/zookeeper-3.4.6/  .
    

配置myid

  • zk1

    $ echo 1 >> /opt/zookeeper-3.4.6/data/myid
    
  • zk2

    $ echo 2 >> /opt/zookeeper-3.4.6/data/myid
    
  • zk3

    $ echo 3 >> /opt/zookeeper-3.4.6/data/myid
    

5.启动并验证集群

在zk1, zk2, zk3同时执行

$ /opt/zookeeper-3.4.6/bin/zkServer.sh start   

验证zookeeper是否启动

$ jps

如果有QuorumPeerMain这个进程,则说明该节点上zookeeper进程启动了。

$ 23283 Jps
$ 23046 QuorumPeerMain

连接zookeeper服务端

/opt/zookeeper-3.4.6/zkCli.sh  -server 127.0.0.1:2181

如果能正确建立连接,则说明集群搭建成功
zookeeper集群部署