Kafka(三)集群之Zookeeper集群

作者: 我犟不过你 | 来源:发表于2021-02-02 12:41 被阅读0次

    上一章节我们看了如何搭建单机版的kafka,现在我们看看如何搭建集群版。需要搭建zookeeper的集群和kafka集群。

    一、准备服务器

    这里我准备了三台虚拟机:
    192.168.184.134
    192.168.184.135
    192.168.184.136
    每台机器部署一个zk和kafka。

    二、zookeeper集群搭建

    集群模式,为了保证高可用,我们需要对zookeeper做集群,可以使用kafka自带的zk,也可以自己去部署一套集群,自己部署一套与kafka彻底减少耦合,且便于维护,利于其他应用共同使用,所以我们选择自己搭建一套zk集群。

    2.1下载并上传

    在apache官网下载zookeeper,地址如下:
    http://www.apache.org/dyn/closer.cgi/zookeeper/

    下载步骤1 下载步骤2 下载步骤3

    这里有个坑,请注意下载带有bin字样的tar包。不带的是源码包,理论上应该价格src才对。

    上传到三台服务器/opt下,并解压:

    [root@bogon /]# cd /opt/
    [root@bogon opt]# tar -xvf apache-zookeeper-3.6.2-bin.tar.gz 
    

    2.2修改配置文件

    [root@bogon opt]# cd apache-zookeeper-3.6.2-bin
    [root@bogon apache-zookeeper-3.6.2-bin]# cd conf/
    
    2.2.1重命名zoo_example.cfg
    [root@bogon conf]# cp zoo_sample.cfg zoo.cfg
    [root@bogon conf]# ll
    总用量 16
    -rw-rw-r--. 1 1000 1000  535 9月   4 20:43 configuration.xsl
    -rw-rw-r--. 1 1000 1000 3435 9月   4 20:43 log4j.properties
    -rw-r--r--. 1 root root 1148 2月   2 10:51 zoo.cfg
    -rw-rw-r--. 1 1000 1000 1148 9月   4 20:43 zoo_sample.cfg
    
    2.2.2编辑配置文件:
    [root@bogon conf]# vi zoo.cfg
    

    增加以下配置:

    server.0=192.168.184.134:2888:3888
    server.1=192.168.184.135:2888:3888
    server.2=192.168.184.136:2888:3888
    

    如上配置192.168.184.134:2888:3888:
    2888是用于zk选举;
    3888是zk服务器间的通信端口。

    修改zk的默认data路径,将原本路径修改为如下所示:

    #dataDir=/tmp/zookeeper
    dataDir=/opt/apache-zookeeper-3.6.2-bin/data
    
    2.2.3创建myid文件

    此文件的主要作用是标记当前zk节点的id,上面我们在zoo配置文件增加的server.0,其中0就表示当前节点id,我们在myid中只需要记录一个0即可。

    [root@bogon conf]# cd ../
    [root@bogon apache-zookeeper-3.6.2-bin]# mkdir data
    [root@bogon apache-zookeeper-3.6.2-bin]# cd data/
    [root@bogon data]# vi myid
    

    myid文件如下所示:

    myid

    相应的,服务器135和136的myid分别是1、2。

    到此为止所有的配置都修改完毕了。

    2.3启动服务

    我们进入到zk的bin文件夹下:

    [root@bogon data]# cd ../
    [root@bogon apache-zookeeper-3.6.2-bin]# cd bin/
    

    三台机器分别执行zkServer.sh:

    [root@bogon bin]#  ./zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /opt/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    

    查看状态,follower是从节点,leader是主节点:

    [root@bogon bin]#  ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /opt/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: follower
    
    [root@bogon bin]# ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /opt/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: leader
    

    有兴趣的同学试下将主节点停掉后,其他的从节点将会被选举为主节点。

    如果启动服务失败的话,如下所示:

    [root@bogon bin]#  ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /opt/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Error contacting service. It is probably not running.
    

    可以通过日志去查看问题,当前版本的日志在主目录的logs下:

    [root@bogon bin]# cd /opt/apache-zookeeper-3.6.2-bin/logs/
    [root@bogon logs]# ll
    总用量 24
    -rw-r--r--. 1 root root     0 2月   2 12:22 zookeeper_audit.log
    -rw-r--r--. 1 root root 24352 2月   2 12:29 zookeeper-root-server-bogon.out
    

    使用以下命令即可常看日志:

    cat zookeeper-root-server-bogon.out
    

    如果说存在端口不通导致启动失败:
    阿里云的话请开放安全组端口
    虚拟机或内网环境请自行设置防火墙
    个人学习可以直接iptables -F

    一个zookeeper的集群已经有很多内容了,我们在下个章节继续去搭建kafka的集群。

    相关文章

      网友评论

        本文标题:Kafka(三)集群之Zookeeper集群

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