• Zookeeper - 本地安装与参数配置


    目录

    零、前置

    1.工作机制

    2.Zookeeper特点

    3.数据结构

    一、下载

    二、本地安装

    1.安装JDK

    2.安装Zookeeper

    三、运行测试 


    很尴尬的一点,手贱把Zookeeper拼错了,大家自己注意一下。。。。当然你也可以选择一直复制我的代码,到搭建集群的时候再带你改回去。

    零、前置

    1.工作机制

    Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。


    2.Zookeeper特点

    1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。

    2)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。

    3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。

    4)更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。

    5)数据更新原子性,一次数据更新要么成功,要么失败。

    6)实时性,在一定时间范围内,Client能读到最新数据。


    3.数据结构

    ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。


    一、下载

    下载地址:Apache ZooKeeper

    2132f2b8814f4ad0a05d026a7f6034a0.png

     当然咱们在实际环境中不太可能会使用到最新的版本,如果想要找到较老的版本可以点下面的Older releases are available in the archive :

    5ea9047e6b14440e8965a3892e2f2845.png

     这里下载的版本是3.5.7,这个版本在实际环境中使用的还是较多的: 

    c499161801c04025a4963c57a988d3b8.png

    选择下载即可:

    3b156ce63cc54d9191a1fbf13b89c272.png


    二、本地安装

    在安装Zookeeper之前,得先安装好JDK,咱们先来安装JDK:

    1.安装JDK

    下载JDK:Java Downloads | Oracle

    传进Linux后开始安装:

    rpm -ivh jdk-8u201-linux-x64.rpm

    158be5ef3d3648c3ac1a6b0e49336d2c.png

    接着开始配置文件:

    vim /etc/profile.d/java.sh

    把一下内容粘贴进去,然后保存退出:

    1. export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
    2. export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    3. export PATH=$JAVA_HOME/bin:$PATH

    接着刷新一下(切记):

    source /etc/profile.d/java.sh 
    

    检查java版本,反馈如下则代表安装成功:

    java -version

    32c9bd911f194771abf01c49b3dc21d8.png


    2.安装Zookeeper

    把刚刚下载的Zookeeper安装包传上去:

    609f109b037c448dba9cdbad350bb075.png

     opt 目录下创建一个新的目录 module :

    mkdir module
    

    接着开始解压:

    tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
    

    然后咱们进到 module 目录看看:

    1. cd /opt/module
    2. ll

    e7543ce34bfd4f9e85512a61f3033348.png

    这里改了下名字,看着会舒服一些:

    mv apache-zookeeper-3.5.7-bin/ zookpeer-3.5.7
    

    进入 conf 目录进行配置,可以看到这里有三个文件,需要进行配置的只有第三个:

    cd /opt/module/zookpeer-3.5.7/conf

    388109669e9c440ab7b9c6c7b68d56eb.png

    咱们给他改个名字然后进行配置:

    mv zoo_sample.cfg zoo.cfg

    然后咱们 vim 进去改一下:

    vim zoo.cfg 

    可以看到其内容如下:

    1. # The number of milliseconds of each tick
    2. ### 通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
    3. tickTime=2000
    4. # The number of ticks that the initial
    5. # synchronization phase can take
    6. ### Leader和Follower初始通信时限
    7. ### Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
    8. initLimit=10
    9. # The number of ticks that can pass between
    10. # sending a request and getting an acknowledgement
    11. ### Leader和Follower同步通信时限
    12. ### Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死
    13. 掉,从服务器列表中删除Follwer
    14. syncLimit=5
    15. # the directory where the snapshot is stored.
    16. # do not use /tmp for storage, /tmp here is just
    17. # example sakes.
    18. ### 保存Zookeeper中的数据
    19. ### 默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录
    20. dataDir=/tmp/zookeeper
    21. # the port at which the clients will connect
    22. ### 客户端连接端口,通常不做修改
    23. clientPort=2181

    可以看到里面的大部分都是注释,其中的参数非常的少,咱们主要来看这一段:

    1. # the directory where the snapshot is stored.
    2. # do not use /tmp for storage, /tmp here is just
    3. # example sakes.
    4. dataDir=/tmp/zookeeper

    他说快照文件会存放在这里,不要使用临时目录来存储数据。所以很明显了,咱们得把这里改掉。我们先去创建一个目录:

    1f02dacc0bfa4e13bb719587ee754b4f.png

    然后把这个目录路径复制下来,填到刚刚的配置文件中然后保存退出:

    95fb8a0625a54386b58bb9020d95e645.png


    三、运行测试 

    修改完毕后回到上一级目录 zookpeer-3.5.7 中,这时候咱们得先启动服务端后再去启动客户端:

    bin/zkServer.sh start
    

    启动完成后可以 jps 查看一下进程:

    9af54b1300a848678b3f17cc8cfd4042.png

    服务端启动后咱们需要启动客户端对其进行访问,这里不需要再加上之前的 start :

    bin/zkCli.sh 

    启动成功后的样式如下: 

    6f7438828ac04241814b4c645e317aa7.png

    退出时输入 quit 即可:

    quit
    

    434c1004cd0d43e196aaad900086cee9.png

    使用以下命令可以查看Zookeeper的进程状态:

    bin/zkServer.sh status

    216fd9b17ff841c5be3970843ea850dd.png

    关闭服务端:

    bin/zkServer.sh stop

    713e1d9da1084868bb27f0a632d29ce7.png

  • 相关阅读:
    mybatis基础
    【C++】类和对象——拷贝构造函数
    Spring Boot 常见面试题
    AXI协议详解(1)-协议简介
    艾美捷QuickTiter 逆转录病毒定量试剂盒的制备方案
    电大搜题——搜索难题
    使用JavaScript将数字格式化成千分位的n种方法
    Leetcode 349 两个数组的交集 (*哈希数组,*HashSet,*HashMap)
    (附源码)springboot苔藓植物科普网站 毕业设计 345641
    【日常业务开发】Java调用第三方http接口的常用方式
  • 原文地址:https://blog.csdn.net/Trollz/article/details/126641969