zoukankan      html  css  js  c++  java
  • Zookeeper单机与集群搭建配置

    目录

    一、概览

    二、单机Zookeeper

      2.1、安装zookeeper

      2.2、配置zookeeper

      2.3、zk server状态管理

      2.4、使用zkCli登录zk服务器

    三、Zookeeper集群搭建配置

      3.1、环境介绍

      3.2、修改配置

      3.3、设置myid

      3.4、启动集群

      3.5、测试集群

    四、总结 

    一、概览

      本文主要是记录安装和配置zookeeper的过程,分为两个部分,第一部分是单机的zookeeper安装配置,第二部分是zookeeper集群的搭建,其中第二部分是建立在第一部分的基础上的。

      如果需要了解zookeeper的命令,可以参考:zookeeper命令整理

       

    二、单机zookeeper

    2.1、安装Zookeeper

      其实Zookeeper的安装特别简单,也不能算安装了,只需要将Zookeeper下载后解压,就完成了安装操作。

      下载地址:http://zookeeper.apache.org/releases.html

      本文所用的3.4.14版本,下载链接  

    su - root  # 请务必切换为root身份
    wget http://www.trieuvan.com/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
    tar -zxf zookeeper-3.4.14.tar.gz
    cp -r zookeeper-3.4.14 /usr/local/zookeeper
    
    # 创建存放数据文件的目录
    mkdir /usr/local/zookeeper/data
    

      此时,Zookeeper就安装成功了,只不过还需要进行一些配置才能启动。 

    2.2、配置Zookeeper

      Zookeeper的配置文件在path-to-zookeeper/conf目录下,文件名为zoo.cfg。初始安装的Zookeeper有一个zoo_sample.cfg示例文件,可以拷贝一份,在进行修改。

    root@ubuntu:/usr/local/zookeeper# cd conf/
    root@ubuntu:/usr/local/zookeeper/conf# ls
    configuration.xsl  log4j.properties  zoo_sample.cfg
    root@ubuntu:/usr/local/zookeeper/conf# cp zoo_sample.cfg zoo.cfg
    root@ubuntu:/usr/local/zookeeper/conf# ls
    configuration.xsl  log4j.properties  zoo.cfg  zoo_sample.cfg
    

      下面是zoo.cfg配置项解释:

    # 心跳间隔(毫秒),超过2倍tickTime将会被认为会话超时
    tickTime=2000
    
    # 初始化连接时最长的时间(心跳间隔次数),超过该值会认为连接超时
    initLimit=10
    
    # zk集群中leader和follower同步消息的超时时间(心跳间隔次数)
    syncLimit=5
    
    # 保存zookeeper数据库快照的目录,前面安装zookeeper时已经创建了该目录
    dataDir=/usr/local/zookeeper/data
    
    # 服务器监听的端口号,用于客户端连接服务器
    clientPort=2181
    
    # zk服务器所支持的最大客户端连接数量
    # maxClientCnxns=60
    

       

    2.3、zk server运行状态管理

      Zookeeper中可执行文件都存放在zookeeper安装路径下的bin目录下,而对Zookeeper服务器运行状态管理,使用的是zkServer.sh这个脚本。

      通过传入start | stop | restart | status来管理Zookeeper服务器的运行状态。

    /usr/local/zookeeper/bin/zkServer.sh start
    /usr/local/zookeeper/bin/zkServer.sh restart
    /usr/local/zookeeper/bin/zkServer.sh stop
    /usr/local/zookeeper/bin/zkServer.sh status
    

       

    2.4、使用zk客户端登录服务器

      通过命令行的方式登录到Zookeeper服务器,可以使用Zookeeper提供的zkCli.sh脚本,位于/usr/local/zookeeper/bin目录下。

    /usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
    

      登录进入Zookeeper服务器后,就可以进行很多操作了,下面将一一列举。

    三、Zookeeper集群搭建配置

    3.1、环境介绍

      Zookeeper集群的安装,只是比安装单机Zk多了1个配置项(server.x)。

      本次搭建Zk集群,包含3台机器(建议使用奇数台机器),机器ip分别为

      centos03:192.168.1.3

      centos04:192.168.1.4

      centos05:192.168.1.5

    已经在上面三台机器上安装了zookeeper(安装上面单机zookeeper的安装步骤)

    3.2、修改配置

      修改集群中每一台zk机器的配置文件内容(/usr/local/zookeeper/conf/zoo.cfg),请尽量保证集群中所有zk机器的配置文件相同。

    # 心跳间隔(毫秒),超过2倍tickTime将会被认为会话超时
    tickTime=2000
     
    # 初始化连接时最长的时间(心跳间隔次数),超过该值会认为连接超时
    initLimit=10
     
    # zk集群中leader和follower同步消息的超时时间(心跳间隔次数)
    syncLimit=5
     
    # 保存zookeeper数据库快照的目录,安装zookeeper时需要创建了该目录
    dataDir=/usr/local/zookeeper/data
     
    # 服务器监听的端口号,用于客户端连接服务器
    clientPort=2181
     
    # 配置zk集群节点信息
    server.1=192.168.1.3:2888:3888
    server.2=192.168.1.4:2888:3888
    server.3=192.168.1.5:2888:3888  

      上面的集群配置中,只是比单机配置多了server.n=A:B:C的几个配置,该配置项的规则如下:

      1、统一前缀,"server.";

      2、"server."后面的数字n表示机器的id(序号),可以随意指定,不要重复即可;

      3、A表示集群中zk机器的ip;

      4、B表示Zk集群中,follower与leader通信的端口;

      5、C表示当leader宕机时,各follower选举新leader的通信端口;

    3.3、设置myid

      上面配置中使用了server.x来指定ip所指的机器编号为x,除此之外,还需要在dataDir所指的目录下创建一个文件(文件名为myid,不能更改),在该文件中保存机器的id(编号)

      前面配置中,指定了dataDir=/usr/local/zookeeper/data,是用来存放数据的目录。

    # 配置zk集群节点信息
    server.1=192.168.1.3:2888:3888
    server.2=192.168.1.4:2888:3888
    server.3=192.168.1.5:2888:3888
    

      上面配置中,192.168.1.3为1号服务器,所以需要在/usr/local/zookeeper/data目录下创建myid文件,内容为1;

      同理:

        192.168.1.4为2号服务器,所以需要在/usr/local/zookeeper/data目录下创建myid文件,内容为2;

        192.168.1.5为3号服务器,所以需要在/usr/local/zookeeper/data目录下创建myid文件,内容为3;

      前提是要先创建dataDir目录,也就是/usr/local/zookeeper/data目录,然后使用下面的命令快速设置myid

    # 192.168.1.3机器,编号为1
    [root@centos03 ~]# mkdir /usr/local/zookeeper/data
    [root@centos03 ~]# echo 1 > /usr/local/zookeeper/data/myid
    
    # 192.168.1.4机器,编号为2
    [root@centos04 ~]# mkdir /usr/local/zookeeper/data
    [root@centos04 data]# echo 2 > /usr/local/zookeeper/data/myid
    
    # 192.168.1.5机器,编号为3
    [root@centos05 ~]# mkdir /usr/local/zookeeper/data
    [root@centos05 ~]# echo 3 > /usr/local/zookeeper/data/myid
    

      

    3.4、启动集群

      启动集群的方式,就是依次启动所有集群机器的zkServer即可。

    [root@centos03 ~]# /usr/local/zookeeper/bin/zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    [root@centos04 ~]# /usr/local/zookeeper/bin/zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    [root@centos05 ~]# /usr/local/zookeeper/bin/zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    

      

      查看集群中每台机器的状态

    [root@centos03 ~]# /usr/local/zookeeper/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Mode: leader
    
    [root@centos04 ~]# /usr/local/zookeeper/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    
    [root@centos05 ~]# /usr/local/zookeeper/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    

      

    3.5、测试集群

      下面是测试例子,注意,客户端连接集群中的机器,使用2181端口,不要使用配置集群的2888和3888端口

    # 连接到192.168.1.3
    ganlixins-MacBook-Pro:~ ganlixin$ /usr/local/zookeeper/bin/zkCli.sh  -server 192.168.1.3:2181
    [zk: 192.168.1.3:2181(CONNECTED) 0] create /abc 123
    Created /abc
    [zk: 192.168.1.3:2181(CONNECTED) 1] create /xyz 666
    Created /xyz
    [zk: 192.168.1.3:2181(CONNECTED) 2] quit
    Quitting...
    
    # 连接到192.168.1.4
    ganlixins-MacBook-Pro:~ ganlixin$ /usr/local/zookeeper/bin/zkCli.sh  -server 192.168.1.4:2181
    [zk: 192.168.1.4:2181(CONNECTED) 0] ls /
    [xyz, abc, zookeeper]
    

      

    四、 总结

      除了本文的安装zookeeper,除此之外:

      如果对查看zk的相关命令,可以参考:zookeeper命令整理

      如果想查看Java如果操作zk,可以参考:使用Java操作Zookeeper

      搭建配合kafka集群,可以参考:Kafka安装与配置

     

  • 相关阅读:
    (视频) 《快速创建网站》 2.2 负载均衡简介和域名绑定操作
    (视频) 《快速创建网站》2.1 在Azure上创建网站及网站运行机制
    (视频) 《快速创建网站》1. 网站管理平台WordPress & 微软Azure 云计算简介
    (视频) 开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE
    【Flask教程01】helloworld程序
    如何在虚拟环境中安装工具包?
    如何使用虚拟环境?
    CentOS 使用ifconfig没有显示ip
    Python Web框架要点
    Python3.7&Django1.11.15 兼容性问题
  • 原文地址:https://www.cnblogs.com/-beyond/p/10993228.html
Copyright © 2011-2022 走看看