zoukankan      html  css  js  c++  java
  • ZooKeeper安装与执行

    首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等文件夹。

    “bin文件夹”中存放有执行脚本。“conf文件夹”中存放有配置文件。“lib文件夹”中存放有执行所须要第三方库。

    一、standalone模式

    1.1、编辑配置文件

    在“conf”文件夹下,新建一个名为“zoo.cfg”的文件,当中内容例如以下:

    tickTime=2000
    dataDir=/home/dsl/tmp/zookeeper
    clientPort=2181

    1.2、执行ZooKeeper Server

    执行bin/zkServer.sh start命令,执行ZooKeeper Server进程。得到如图1所看到的结果,表示后台执行ZooKeeper Server进程成功。

    图1
    这里写图片描写叙述

    也能够执行bin/zkServer.sh start-foreground命令,非后台执行ZooKeeper Server进程。得到如图2所看到的结果。

    图2
    这里写图片描写叙述

    1.3、执行ZooKeeper命令行client

    执行bin/zkCli.sh -server 127.0.0.1:2181命令,执行ZooKeeper命令行client,得到如图3所看到的界面。能够在当中调用操作Znode节点树的API。

    图3
    这里写图片描写叙述

    1.4、调用操作Znode节点树的API

    进入“1.3、执行ZooKeeper命令行client”中得到的界面。调用操作Znode节点树的API。
    1、获取初始Znode节点
    初始时。存在路径标识为“/zookeeper”的Znode节点。该Znode节点保存一些元数据。不能被删除。
    执行ls /命令,可得到如图4所看到的结果。

    图4
    这里写图片描写叙述

    2、创建Znode节点
    执行create /data "data"命令。创建一个Znode节点,路径标识为“/data”,包括内容“data”。

    再执行ls /命令,得到如图5所看到的结果。

    图5
    这里写图片描写叙述

    3、删除Znode节点
    执行delete /data命令,删除路径标识为“/data”的Znode节点。再执行ls /命令,得到如图6所看到的结果。

    图6
    这里写图片描写叙述

    二、quorum模式

    使用quorum模式有两种形式:1)使用多台机器,在每台机器上执行一个ZooKeeper Server进程。2)使用一台机器。在该台机器上执行多个ZooKeeper Server进程。在生产环境中,一般使用第一种形式,在练习环境中,一般使用另外一种形式。

    2.1、參数配置

    quorum模式下。要使一个ZooKeeper Server进程能够正常执行,须要配置一些參数。下面是常见的一些參数。


    1、data文件夹
    用于存放进程执行数据。


    2、data文件夹下的myid文件
    用于存储一个数值。该数值用来作为该ZooKeeper Server进程的标识。


    3、监听Client端请求的port号
    该port号用来监听Client端请求。(关于“Client”见《ZooKeeper》 Chapter 2 Getting to Grips with ZooKeeper的图2)
    4、监听同ZooKeeper集群内其它ZooKeeper Server进程通信请求的port号
    该port号用来监听同ZooKeeper集群内其它ZooKeeper Server进程的通信请求。
    5、监听ZooKeeper集群内“leader”选举请求的port号
    该port号用来监听ZooKeeper集群内“leader”选举的请求。注意这个是ZooKeeper集群内“leader”的选举,跟分布式应用程序无关。

    參数配置注意事项:
    1)同一个ZooKeeper集群内,不同ZooKeeper Server进程的标识须要不一样。即myid文件内的值须要不一样
    2)採用上述第2种形式构建ZooKeeper集群,须要注意“文件夹,port号”等资源的不可共享性,假设共享会导致ZooKeeper Server进程不能正常执行。比方“data文件夹。几个监听port号”都不能被共享

    2.2、举例

    採用上述第2种形式构建一个使用quorum模式的ZooKeeper集群。集群规划如表1所看到的。

    表1

    ZooKeeper Server进程标识(myid文件内数值) data文件夹 监听Client端请求的port号 监听同ZooKeeper集群内其它ZooKeeper Server进程通信请求的port号 监听ZooKeeper集群内“leader”选举请求的port号 配置文件名
    1 /home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z1/data 2181 2222 2223 z1.cfg
    2 /home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z2/data 2182 3333 3334 z2.cfg
    3 /home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z3/data 2183 4444 4445 z3.cfg

    对应的文件夹结构如图1所看到的。

    图1
    这里写图片描写叙述

    “z1.cfg,z2.cfg,z3.cfg”这3个文件的文件内容分别例如以下所看到的。

    # z1.cfg
    tickTime=2000
    initLimit=10
    syncLimit=5
    
    dataDir=/home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z1/data
    clientPort=2181
    # server.x中的“x”表示ZooKeeper Server进程的标识
    # 同一个ZooKeeper集群内的ZooKeeper Server进程间的通信不仅能够使用详细的点IP地址。也能够使用组播地址
    server.1=127.0.0.1:2222:2223
    server.2=127.0.0.1:3333:3334
    server.3=127.0.0.1:4444:4445
    
    # z2.cfg
    tickTime=2000
    initLimit=10
    syncLimit=5
    
    dataDir=/home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z2/data
    clientPort=2182
    # server.x中的“x”表示ZooKeeper Server进程的标识
    # 同一个ZooKeeper集群内的ZooKeeper Server进程间的通信不仅能够使用详细的点IP地址,也能够使用组播地址
    server.1=127.0.0.1:2222:2223
    server.2=127.0.0.1:3333:3334
    server.3=127.0.0.1:4444:4445
    
    # z3.cfg
    tickTime=2000
    initLimit=10
    syncLimit=5
    
    dataDir=/home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z3/data
    clientPort=2183
    # server.x中的“x”表示ZooKeeper Server进程的标识
    # 同一个ZooKeeper集群内的ZooKeeper Server进程间的通信不仅能够使用详细的点IP地址。也能够使用组播地址
    server.1=127.0.0.1:2222:2223
    server.2=127.0.0.1:3333:3334
    server.3=127.0.0.1:4444:4445

    2.2.1、执行ZooKeeper Server

    分别执行bin/zkServer.sh start deploy/z1/z1.cfgbin/zkServer.sh start deploy/z2/z2.cfgbin/zkServer.sh start deploy/z3/z3.cfg命令,执行上述配置的3个ZooKeeper Server进程。

    2.2.2、执行ZooKeeper命令行client

    执行bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183命令,建立ZooKeeper Client端到ZooKeeper集群的连接会话。

    2.2.3、调用操作Znode节点树的API

    跟“1.4、调用操作Znode节点树的API”一样,能够在“2.2.2、执行ZooKeeper命令行client”中得到的界面内,调用操作Znode节点树的API。



    备注:
    依据《ZooKeeper》 Chapter 2 Getting to Grips with ZooKeeper可知,“ZooKeeper命令行client”本质上还是使用了Java版驱动程序库提供的API或者C版驱动程序库提供的API。


    參考文献:
    [1]https://zookeeper.apache.org/doc/r3.4.8/zookeeperStarted.html
    [2]http://blog.csdn.net/dslztx/article/details/51077606

  • 相关阅读:
    [Unity3D] 如何将飞飞游戏资源提取并加载到uinty3d中
    [Unity3D] 解决提示参数动作文件不存在的错误Parameter 'XXX' does not exist.
    [Unity3D] 字体垂直自动滚动&鼠标拖拽滑动字体滚动
    [Unity3D] 图集按照顺序显示(幻灯片效果)&指定间隔时间显示
    [Unity3D] 在UI界面上显示播放视频
    TypeScript
    Css 设置超过再两行显示省略号
    vue scss 样式穿透
    JavaScript 严格模式(strict mode)
    Webpack file-loader 和 url-loader
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7257387.html
Copyright © 2011-2022 走看看