美文网首页
(2)Zookeeper学习笔记-单机/伪集群安装与部署

(2)Zookeeper学习笔记-单机/伪集群安装与部署

作者: 程序男保姆 | 来源:发表于2020-04-02 15:50 被阅读0次

    环境需要

    Zookeeper是使用Java语言编写的,推荐使用JDK1.6及以上版本,JDK安装过程请自行百度
    操作系统适配,Linux,Windows,MacOS等大部分主流操作系统均可
    本文安装Zookeeper基于JDK1.8,MacOS,MacOS系统下支持brew安装,为了讲解的通用性选择官网下载压缩包方式安装,附上官网zk下载地址
    http://www.apache.org/dyn/closer.cgi/zookeeper
    本文中Zk版本是zookeeper-3.4.12

    单机部署

    下载zookeeper-3.4.12.tar.gz,并将压缩包放到自己对应的目录下
    执行tar -xzvf zookeeper-3.4.12.tar.gz 将zk压缩包解压
    解压后的zk文件夹目录结构如下所示
    初次使用zk时,需要将conf目录下的zoo_sample.cfg文件重新命名为zoo.cfg,zk默认配置文件即为/zk安装目录/conf/zoo.cfg文件
    zoo.cfg文件中配置参数说明如下

    tickTime=2000
    # 初始化同步时(Leader与Follwer建立链接)所耗费的时间,默认10个tickTime,如果zk中文件很大,可适当调大该值
    initLimit=10
    # Leader发出请求到得到Follower ack响应所耗费的时间,默认5个tickTime
    syncLimit=5
    # 数据目录路径,用于存放myid信息以及一些事务日志、znode快照信息,最好修改为自己的目录
    dataDir=/tmp/zookeeper/data
    # 日志文件路径
    dataLogDir=/tmp/zookeeper/logs
    # zk客户端连接的端口号,默认2181
    clientPort=2181
    # 可接受的客户端最大连接数
    #maxClientCnxns=60
    # 开启自动清除高级特性前,可参考
    http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    # znode快照文件数量,超过这个数量会触发自动清除功能
    #autopurge.snapRetainCount=3
    # 自动清除时间间隔,单位-小时,如设置为0,则表示禁用自动清除功能
    #autopurge.purgeInterval=1
    

    附上我的zoo.cfg文件,如下

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/Users/chenyin/zookeeper/data
    dataLogDir=/Users/chenyin/zookeeper/logs
    clientPort=2181
    server.1=192.168.202.58:2888:3888
    

    其中server.1=192.168.202.58:2888:3888 标识只有1个zk节点
    server.X=IP:端口号1:端口号2

    X对应dataDir下myid文件内容,机器唯一标识,故还需在dataDir下,即/Users/chenyin/zookeeper/data 新建myid文件,并只写入一行数字,即1

    cd /Users/chenyin/zookeeper/data
    echo '1' > myid
    1
    2
    

    Ip对应机器ip
    端口号1 用来连接Leader
    端口号2 用来Leader选举

    配置完zoo.cfg及新建myid文件后,剩下的就是启动zk服务了,常见命令如下,执行命令所需zk相关sh脚本文件在zk安装目录下的bin文件中
    启动服务

    ./zkServer.sh start
    

    停止服务

    ./zkServer.sh stop
    

    重启服务

    ./zkServer.sh restart
    

    查看服务状态

    ./zkServer.sh status
    

    执行结果如下,其中Mode:standalone标识当前集群只有一台server,如果是集群部署,Mode有可能是Leader或者Follower

    连接zk服务

    ./zkCli.sh
    

    或者直接指定ip+客户端连接端口号(zoo.cfg文件中指定的clientPort)

    ./zkCli.sh -server 127.0.0.1:2181 
    

    执行结果如下
    在该命令行界面可以输入 help 来查询zk相关命令

    伪集群部署

    在单机环境中配置zk伪集群,需要设置不同的配置文件,来启动不同的zk服务节点,需注意以下几点

    clientPort端口:如果在1台机器上部署多个server,那么每台机器都要不同的 clientPort,比如 server1是2181,server2是2182,server3是2183
    dataDir和dataLogDir:dataDir和dataLogDir也需要区分下,将数据文件和日志文件分开存放,同时每个server的这两变量所对应的路径都是不同的
    server.X和myid: server.X 这个数字X就是对应,dataDir/myid中的数字。在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg都配 server.1 server.2,server.3就行了。因为在同一台机器上,后面连着的2个端口,3个server都不要一样,否则端口冲突
    下载及解压缩过程不再赘述,从配置zoo.cfg及myid文件开始 ,流程如下

    1. 我在自己的zookeeper文件夹下分别新建3个文件夹,zk1,zk2,zk3来模拟3台机器对应的数据及日志存储目录,数据目录下新建myid文件,分别写入1,2,3来标识3台服务节点

    2. 在 /zk安装目录/conf下新建zoo1.cfg,zoo2.cfg,zoo3.cfg配置文件来模拟3台zk服务节点不同的配置,具体配置如下

    zoo1.cfg

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/Users/chenyin/zookeeper/zk1/data
    dataLogDir=/Users/chenyin/zookeeper/zk1/logs
    clientPort=2182
    server.1=192.168.202.58:2887:3887
    server.2=192.168.202.58:2888:3888
    server.3=192.168.202.58:2889:3889
    

    zoo2.cfg

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/Users/chenyin/zookeeper/zk2/data
    dataLogDir=/Users/chenyin/zookeeper/zk2/logs
    clientPort=2183
    server.1=192.168.202.58:2887:3887
    server.2=192.168.202.58:2888:3888
    server.3=192.168.202.58:2889:3889
    

    zoo3.cfg

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/Users/chenyin/zookeeper/zk3/data
    dataLogDir=/Users/chenyin/zookeeper/zk3/logs
    clientPort=2184
    server.1=192.168.202.58:2887:3887
    server.2=192.168.202.58:2888:3888
    server.3=192.168.202.58:2889:3889
    
    1. 根据配置文件启动不同zkServer,在上述介绍的命令中,后面都可以接上指定配置文件来启动、停止、查看不同的服务,如
    ./zkServer.sh start ../conf/zoo1.cfg
    ./zkServer.sh stop ../conf/zoo1.cfg  
    ./zkServer.sh status ../conf/zoo1.cfg 
    

    先在/zk安装目录/bin下,执行启动命令启动3个服务节点

    查看下节点状态,看是否启动成功,看到有2个节点的mode是follower,一个节点是leader,标识zk集群搭建成功

    1. 启动客户端

    输入ip+客户端连接端口号clientPort来连接zk服务器

    ./zkCli.sh -server 127.0.0.1:2184 
    

    集群部署

    集群部署本质上与伪集群部署一致,不再赘述

    原文链接:https://blog.csdn.net/hosaos/java/article/details/87160617

    相关文章

      网友评论

          本文标题:(2)Zookeeper学习笔记-单机/伪集群安装与部署

          本文链接:https://www.haomeiwen.com/subject/fcpxphtx.html