• Zookeeper 集群部署


    一、 Zookeeper 简介

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    1. zookeeper 集群node节点数量 n -1宕机,集群仍然可以正常提供服务,所以一般以奇数的节点组成集群,故集群节点数量通常为 3节点,5节点 …
    二、 Zookeeper 集群部署
    • 部署环境
    操作系统IP主机名
    CentOS Linux release 7.5.1804 (Core)192.168.169.10zk-node1
    CentOS Linux release 7.5.1804 (Core)192.168.169.20zk-node2
    CentOS Linux release 7.6.1810 (Core)192.168.169.30zk-node3

    1、zookeeper 依赖 JDK,检查每个节点是否安装jdk ,如果没有则需安装JDK

    [root@zk-node1 zookeeper]# java -version      //执行命令会显示JDK版本信息
    openjdk version "1.8.0_161"
    OpenJDK Runtime Environment (build 1.8.0_161-b14)
    OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
    
    • 1
    • 2
    • 3
    • 4

    2、zookeeper 节点之间需要互相通信,需要关闭防火墙,保证节点之间网络连通正常,在每个节点执行

    [root@zk-node1 zookeeper]# setenforce 0
    [root@zk-node1 zookeeper]# sed -ri  's/^(SELINUX=).*/\1disable/g'  /etc/selinux/config 
    [root@zk-node1 zookeeper]# systemctl stop firewalld
    [root@zk-node1 zookeeper]# systemctl disable  firewalld
    
    • 1
    • 2
    • 3
    • 4

    3、zookeeper 官网下载安装包,上传至所有节点服务器,并解压
    zookeeper 官网

    [root@zk-node1 zookeeper]# ls
    apache-zookeeper-3.7.1-bin.tar.gz
    [root@zk-node1 zookeeper]# tar xvf apache-zookeeper-3.7.1-bin
    
    • 1
    • 2
    • 3

    4、修改主配置文件

    [root@zk-node1 zookeeper]# cd apache-zookeeper-3.7.1-bin/conf/
    [root@zk-node1 conf]# cp zoo_sample.cfg   zoo.cfg 
    [root@zk-node1 conf]# cat  zoo.cfg
    # Follower和Leader之间的心跳检测时间
    tickTime=2000
    # Follower和Leader的连接超时时间
    initLimit=10
    # Follower数据同步Leader的超时时间
    syncLimit=5
    #指定数据存储路径
    dataDir=/home/zookeeper/apache-zookeeper-3.7.1-bin/data     
    #指定日志路径
    dataLogDir=/home/zookeeper/apache-zookeeper-3.7.1-bin/logs 
    #zookeeper 监听在本地端口
    clientPort=2181  
    #组成集群内的所有节点
    server.1=192.168.169.10:2188:3288              
    server.2=192.168.169.20:2188:3288
    server.3=192.168.169.30:2188:3288
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    示例配置server.1=192.168.169.10:2188:3288 表示如下

    server.1                  表示节点序列号
    192.168.169.10            集群节点的IP
    2188                      节点之间内部通信端口
    3288                      节点之间 master 选举端口
    
    • 1
    • 2
    • 3
    • 4

    5、在所有节点创建数据目录和日志目录

    [root@zk-node1 ~]# mkdir /home/zookeeper/apache-zookeeper-3.7.1-bin/data/
    [root@zk-node1 ~]# mkdir /home/zookeeper/apache-zookeeper-3.7.1-bin/logs/
    
    • 1
    • 2

    6、将这个配置文件拷贝到其他节点相同的路径下

    [root@zk-node1 conf]# scp zoo.cfg  root@192.168.169.20:/home/zookeeper/apache-zookeeper-3.7.1-bin/conf/
    [root@zk-node1 conf]# scp zoo.cfg  root@192.168.169.30:/home/zookeeper/apache-zookeeper-3.7.1-bin/conf/
    
    • 1
    • 2

    7、分别在所有节点的数据目录下创建 myid 文件并写入序列号,每个节点序列号必须和主配置文件一致

    [root@zk-node1 ~]# cd  /home/zookeeper/apache-zookeeper-3.7.1-bin/data/
    [root@zk-node1 data]# echo 1 > myid
    [root@zk-node2 ~]# cd  /home/zookeeper/apache-zookeeper-3.7.1-bin/data/
    [root@zk-node2 data]# echo 2 > myid
    [root@zk-node3 ~]# cd  /home/zookeeper/apache-zookeeper-3.7.1-bin/data/
    [root@zk-node3 data]# echo 3 > myid
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    8、所有节点启动 zookeeper

    [root@zk-node1 ~]# sh /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  start
    [root@zk-node2 ~]# sh /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  start
    [root@zk-node3 ~]# sh /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  start
    
    • 1
    • 2
    • 3

    9、查看节点的状态 ,leader 为主节点,follower为 从节点

    [root@zk-node1 ~]# /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh status
    /usr/bin/java
    ZooKeeper JMX enabled by default
    Using config: /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: leader
    
    [root@zk-node2 ~]# /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  status
    ZooKeeper JMX enabled by default
    Using config: /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: follower
    
    [root@zk-node3 ~]# /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  status
    ZooKeeper JMX enabled by default
    Using config: /home/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: follower
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
  • 相关阅读:
    Django笔记二十七之数据库函数之文本函数
    华清 Qt day1 9月15
    基础算法篇——前缀和与差分
    Spring源码该如何阅读?十年架构师带来的Spring源码解析千万不要错过!
    【Prometheus】监控Kubernetes
    项目管理实战总结(二)-沟通路径
    华为数通方向HCIP-DataCom H12-831题库(多选题:241-259)
    Linux搭建FTP服务器
    vue实现列表数据分页
    ELK部署
  • 原文地址:https://blog.csdn.net/weixin_42890981/article/details/126564345