zoukankan      html  css  js  c++  java
  • zookeeper集群的搭建以及命令详解

    一、安装jdk

      ①    :下载jdk ,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html,下载完成之后使用tar 命令解压;

      ②    :配置环境变量

       修改 /etc/profile

     vi  /etc /profile
    #在末尾追加以下内容
    export JAVA_HOME=/root/apps/jdk1.8.0_151
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin

      ③    :source  /etc/profile

      ④    :检测是否安装成功

        java  -version

    二、搭建zookeeper集群

      ①:下载zookeeper,下载地址http://mirror.bit.edu.cn/apache/zookeeper/

      ②:解压  tar  -zxvf   zookeeper.tar.gz

      ③:修改zoo.cfg 

        cp  zooo_sample.cfg  zoo.cfg

        vi  zoo.cfg

    dataDir= /tmp/zookeeper/data     //修改dataDir的目录
    #在zoo.cfg末尾添加以下内容 server.1=192.168.1.1:2888:3888 server.2=192.168.1.2:2888:3888 server.3=192.168.1.3:2888:3888

    zoo.cfg配置文件详解:

      clientPort:

        clientPort这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求;

      tickTime

        tickTime 是zookeeper中的基本时间单元,代表发送心跳的间隔时间,单位是毫秒;

      initLimit

        initLimit是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端和leader连接失败。总的时间为:10*2000=20秒;

      ataDir

        dataDir是zookeeper持久化存放数据存放的目录;.

      syncLimit

        Leader和Follower之间发送消息时,请求和应答的时间长度,最长不能超过多少个tickTime的时间长度,默认值为5,所以总的时间为5*2000=10秒;

      ④:分发zookeeper

        使用scp命令将配置好的zookeeper分发到server2  ,server3对应的目录,如果没有scp命令,使用  yum install openssl 安装即可;

     scp /root/apps/zookeeper-3.4.14/  root@192.168.1.2:/root/apps/
     scp /root/apps/zookeeper-3.4.14/  root@192.168.1.3:/root/apps/

     分发完成之后分别在server1,server2,server3的/tmp/zookeeper/data中创建myid文件,然后分别写入以下内容

           echo  1  > /tmp/zookeeper/data/myid

      echo  2  > /tmp/zookeeper/data/myid

      echo  3  > /tmp/zookeeper/data/myid

    注意事项:192.168.1.1对应的是第一台server,所以在192..168.1.1这台server中输入:echo  1  > /tmp/zookeeper/data/myid,其它同理;跟zoo.cfg配置文件必须相对应

      ⑥:启动zookeeper集群:分别在server1s,server2,server3上执行以下命令  

     cd  /root/apps/zookeeper-3.4.14/bin/
     ./zkServer.sh start

    如果使用CRT,可以在view  ===> Command Window勾选,然后在Command  Window中勾选Send Commands to All  Sessions,执行一次命令即可;

      ⑥:查看zookeeper集群的状态
        ./zkServer.sh status    //两个follower  一个leader即集群搭建成功;

    三、关于zookeeper命令的介绍

    ①:连接zookeeper:./zkCli.sh   -server  1962.168.1.1 

    ②:使用--help查看帮助文档

    ③:查看所有得节点:  ls  /

    ④:创建节点:create  /zkdemo  helloworld  (默认创建的是永久的节点,如果想要创建临时的节点,可以使用 -e )

    注意:同级节点必须唯一性,即在同一节点下不可能出现两个同名的节点;临时节点下不能创建子节点;

    ⑤:查看节点信息:  get   /zkdemo

    节点信息详解:  

      helloworld -- 节点的数据信息

      cZxid  -- cZxid指的是节点创建时的事务id. 不变.

      ctime -   节点的创建时间. 不变.

      mZxid  -- 节点最近一次修改的事务id. 包括对本节点数据的修改. 本节点acl的修改,子节点的增加删除以及子节点acl的修改都不会影响到该值.

      mtime    -- 节点最近一次修改的时间.

      pZxid  -- 对子节点最近的一次修改, 包括子节点的增加删除, 但是子节点的数据修改和acl权限控制,不会影响这个信息.

      cversion   -- 子节点的版本号, 对子节点的增加和删除操作, 版本号都会加1.但是子节点的数据和acl修改不会影响这个信息.

      ataVersion    -- 数据版本.本节点的数据信息每被修改一次, 加1

      aclVersion   -- acl 版本号. acl指的是对改节点的访问权限, 每更改一次就加1

      ephemeralOwner  -- ephemeral节点所属的客户端的sessionId. 如果是persist 节点, 则为0

      dataLength  -- 数据长度

      numChildren    -- 子节点的数量

    ⑥:修改节点信息:set  /zkdemo   zookeeper

      get  /zkdemo

    ⑦:删除节点:

      delete  /zkdemo

  • 相关阅读:
    Java学习-021-Properties 获取配置项对应的值
    Java学习-020-Properties 判断是否存在对应的 key 项
    Java学习-019-Properties 文件读取实例源代码
    Java学习-018-EXCEL 文件写入实例源代码
    Redis进阶实践之九 独立封装的RedisClient客户端工具类
    Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本
    Redis进阶实践之七Redis和Lua初步整合使用
    Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务
    Redis进阶实践之五Redis的高级特性
    Redis进阶实践之四Redis的基本数据类型
  • 原文地址:https://www.cnblogs.com/Yly-G/p/10774951.html
Copyright © 2011-2022 走看看