• Zookeeper-3.8.0单台、集群环境搭建


    前言
    zookeeper 是分布式应用程序的分布式开源协调服务。它公开了一组简单的原语,分布式应用程序可以在这些原语的基础上实现更高级别的同步、配置维护、组和命名服务。

    zookeeper应用广泛,作为一些框架的基础,例如kafka,hadoop-ha。

    本文主要介绍了zookeeper的单台、集群搭建。

    环境准备
    软件版本
    zookeeper-3.8.0
    centos 7
    假设你的环境已经:

    关闭防火墙
    配置好了jdk1.8的环境
    修改了ip映射
    修改了主机名
     

    zookeeper-3.8.0 官网安装包下载链接

    https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz

    单台部署方式

    把 apache-zookeeper-3.8.0-bin.tar.gz 安装包拷贝至 /root/tools 目录(这个目录可以自行设定),

    解压

    解压至当前目录: 

    tar -zxvf  apache-zookeeper-3.8.0-bin.tar.gz

    配置环境变量

     编辑 profile文件:

      vi /etc/profile

    1. # 添加以下内容
    2. export ZOOKEEPER_HOME=/root/tools/apache-zookeeper-3.8.0-bin
    3. export PATH=$PATH:$ZOOKEEPER_HOME/bin

    保存并生效:

    source /etc/profile

    修改配置文件zoo.cfg

    进入conf目录:  cd /root/tools/apache-zookeeper-3.8.0-bin/conf

    配置目录中没有zoo.cfg,使用zoo_sample.cfg复制一个: cp zoo_sample.cfg  zoo.cfg

    编辑 zoo.cfg 文件(重要):

    #用于计算的时间单元,单位为毫秒。比如session超时:N* tickTime。

    tickTime=2000  

    #用于集群,允许从节点连接并同步到master节点的初始化连接时间,以tickTime的倍数来表示。

    initLimit=10

    #用于集群,master主节点与从节点之间发送消息,请求和应答时间长度,超过一定的时间从节点就会被抛弃。(心跳机制)

    syncLimit=5

    #必须配置,比如用来存储事务文件的数据等。

    dataDir=/data/zookeeper/data

    #日志目录,如果不配置会和dataDir公用

    dataLogDir=/data/zookeeper/log

    #连接服务器的端口,默认2181

    clientPort=2181

    #单个client与单台server之间的连接数的限制,是ip级别的,默认是60。假设设置为0。那么表明不作不论什么限制。请注意这个限制的使用范围,不过单台client机器与单台ZKserver之间的连接数限制,不是针对指定clientIP,也不是ZK集群的连接数限制,也不是单台ZK对全部client的连接数限制。

    maxClientCnxns=1200

    #这个參数和上面的參数搭配使用,这个參数指定了须要保留的文件数目

    autopurge.snapRetainCount=10

     # 3.4.0及之后版本号,ZK提供了自己主动清理事务日志和快照文件的功能,这个參数指定了清理频率。单位是小时。须要配置一个1或更大的整数,默认是0。表不开启自己主动清理功能

    autopurge.purgeInterval=24

     wq!保存并退出文件。

    启动zookeeper

    cd  /root/tools/apache-zookeeper-3.8.0-bin/bin/

    ./zkServer.sh start

    停止& 重启zookeeper

     ./zkServer.sh stop

    ./zkServer.sh restart

    验证zookeeper

    ./zkCli.sh -server localhost:2181

    验证OK。 

    集群部署

    创建myid(172.10.10.1机器)

    cd  /data/zookeeper/data

    vi myid

     保存退出。

    编辑 zoo.cfg 文件:

    1. #用于计算的时间单元,单位为毫秒。比如session超时:N* tickTime。
    2. tickTime=2000  
    3. #用于集群,允许从节点连接并同步到master节点的初始化连接时间,以tickTime的倍数来表示。
    4. initLimit=10
    5. #用于集群,master主节点与从节点之间发送消息,请求和应答时间长度,超过一定的时间从节点就会被抛弃。(心跳机制)
    6. syncLimit=5
    7. #必须配置,比如用来存储事务文件的数据等。
    8. dataDir=/data/zookeeper/data
    9. #日志目录,如果不配置会和dataDir公用
    10. dataLogDir=/data/zookeeper/log
    11. #连接服务器的端口,默认2181
    12. clientPort=2181
    13. #单个client与单台server之间的连接数的限制,是ip级别的,默认是60。假设设置为0。那么表明不作不论什么限制。请注意这个限制的使用范围,不过单台client机器与单台ZKserver之间的连接数限制,不是针对指定clientIP,也不是ZK集群的连接数限制,也不是单台ZK对全部client的连接数限制。
    14. maxClientCnxns=1200
    15. #这个參数和上面的參数搭配使用,这个參数指定了须要保留的文件数目
    16. autopurge.snapRetainCount=10
    17.  # 3.4.0及之后版本号,ZK提供了自己主动清理事务日志和快照文件的功能,这个參数指定了清理频率。单位是小时。须要配置一个1或更大的整数,默认是0。表不开启自己主动清理功能
    18. autopurge.purgeInterval=24
    19. # server.myid=你的三个节点的ip地址:2888:3888
    20. # 2888:集群内机器通讯使用
    21. # 3888:选举leader使用的端口
    22. server.1=172.10.10.11:2888:3888
    23. server.2=172.10.10.12:2888:3888
    24. server.3=172.10.10.13:2888:3888

    拷贝环境变量

    把172.10.10.1 机器上的环境变量文件拷贝到其他两台机器

    scp -r /etc/profile  root@172.10.10.12:/etc/

    scp -r /etc/profile  root@172.10.10.13:/etc/

    拷贝zookeeper

    scp -r /root/tools/apache-zookeeper-3.8.0-bin/  root@172.10.10.12:/root/tools/

    scp -r /root/tools/apache-zookeeper-3.8.0-bin/  root@172.10.10.13:/root/tools/

    拷贝zookeeper的myid

    scp -r /data/zookeeper/data/myid  root@172.10.10.12:/data/zookeeper/data/

    scp -r /data/zookeeper/data/myid  root@172.10.10.13:/data/zookeeper/data/

    分别把172.10.10.12 、172.10.10.13 的 /data/zookeeper/data/myid 改为  2  、3.

    启动zookeeper

    在3台机器上,分别执行

    sh /apache-zookeeper-3.8.0-bin/bin/zkServer.sh start

    查看状态

     sh /apache-zookeeper-3.8.0-bin/bin/zkServer.sh status

     

  • 相关阅读:
    linux安装activemq
    Brachistochrone:使用变分法找到最快下降曲线
    前端将二维数组转换成树形格式数组
    《HTML+CSS+JavaScript》之第1章 HTML简介
    代码随想录1刷—二叉树篇(二)
    netty系列之:netty中的核心编码器base64
    基础-MySQL
    R语言ggplot2可视化:可视化折线图、使用labs函数为折线图添加自定义的Y轴标签信息(customize y axis label)
    Java.lang ClassLoader findClass()方法具有什么功能呢?
    10 个 Python 自动探索性数据分析神库!
  • 原文地址:https://blog.csdn.net/junior77/article/details/127618282