zoukankan      html  css  js  c++  java
  • Linux环境ZooKeeper安装配置及使用

    转载自:YBCarry

    一、ZooKeeper

    1.1 zookeeper作用

    • 存储+监听

    1.2 zookeeper角色

    • 主从结构

    1)Leader领导者->主
    2)Follower追随者->从
    3)zookeeper由一个领导者多个追随者组成

    **zookeeper集群中只要有半数以上的节点存活,zookeeper集群就能正常工作。(高可用)**所以搭建zk集群最好搭建奇数台(3,5,11)。

    1.3 zookeeper功能

    大数据中使用zookeeper业务:

    • 1)做统一的配置管理
    • 2)做统一的命名服务
    • 3)做统一的集群管理
    • 4)做服务器的动态上下线感知(代码)

    二、集群规划

    1. hadoop01、hadoop02和hadoop03三个节点上部署ZooKeeper。
    2. 上传安装包zookeeper-3.4.10.tar.gz
    3. 具备java环境

    三、安装流程

    (1)单节点安装——hadoop01

    解压zookeeper安装包到目标目录下:

    $ tar -zxvf zookeeper-3.4.10.tar.gz -C 目标目录
    

    在zookeeper的根目录zookeeper-3.4.10/下创建zkData:

    $ mkdir -p zkData
    

    重命名zookeeper-3.4.10/conf目录下的zoo_sample.cfg为zoo.cfg作为配置文件:

    $ mv zoo_sample.cfg zoo.cfg
    

    (2)配置zoo.cfg文件

    修改dataDir路径为创建的zkData路径:

     dataDir=/XXXXXX/zookeeper-3.4.10/zkData
    

    增加集群信息:

      #######################cluster##########################  
      server.1=hadoop01:2888:3888  
      server.2=hadoop02:2888:3888  
      server.3=hadoop03:2888:3888  
    
    • 2888:zookeeper服务之间通信端口
    • 3888:zookeeper选举机制端口
    • 2181:zookeeper客户端用于连接zookeeper服务器

    (3)配置参数解读

    Server.A=B:C:D。

    • A是一个数字,表示这个是第几号服务器;
    • B是这个服务器的ip地址;
    • C是这个服务器与集群中的Leader服务器交换信息的端口;
    • D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

    集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。

    (4)集群操作

    • 在zookeeper-3.4.10/zkData目录下创建一个myid的文件:
    touch myid
    
    • 编辑myid文件:(注意myid除编号外不能有任何多余内容,包括空格和空行) vi myid 在文件中添加与server对应的编号:如1
    • 拷贝配置好的zookeeper到其他机器上
        scp -r zookeeper-3.4.10/ hadoop02:$PWD
        scp -r zookeeper-3.4.10/ hadoop03:$PWD
    
    • 分别修改myid文件中内容为2、3

    (5)选举机制

    在这里插入图片描述

    四、命令行操作

    (1)配置环境变量:

    修改配置文件:

    vi /etc/profile
    

    增加以下内容:

    export ZOOKEEPER_HOME=zookeeper安装路径
    export PATH=ZOOKEEPER_HOME/bin
    

    声明环境变量:

    source /etc/profile
    

    (2)启动zookeeper集群

    $ bin/zkServer.sh start
    

    (3)查看zookeeper状态

    $ bin/zkServer.sh status
    

    (4)启动客户端

    $ bin/zkCli.sh
    

    (5)退出客户端

    $ quit
    

    (6)连接其它机器客户端操作

    $ connect 主机名:2181
    

    (7)查看历史操作记录

    $ history
    

    (8)查看当前节点的内容

    $ ls /
    

    (9)创建节点

    $ create /节点名 数据信息
    

    (10)查看节点的值

    $ get /节点名
    

    (11)创建节点的可选项

    $ create [-s] [-e] path data acl
    
    • [-e] 短暂节点,退出客户端后消失。
    • [-s] 序号,可创建节点名相同的节点,序号依次累加。

    (12)修改节点值

    $ set path data [version]
    
    • [version] 版本
    • 注意:设置版本号 必须从0开始

    (13)删除节点

    $ delete path
    

    (14)创建子节点

    $ create /节点名/子节点名 数据信息
    

    (15)递归删除

    $ rmr /节点名
    

    (16)监听

    获得监听:

    $ get path watch
    

    获得当前节点下增减变化:

    $ ls path watch
    

    (17)查看当前节点状态

    $ stat /节点名
    

    五、节点状态信息

    • czxid:zookeeper事务id
    • ctime:节点创建时间
    • mZxid:最后更新的
    • czxid mtime:最后修改的时间
    • pZxid:最后更新子节点的czxid
    • cversion:子节点的变化号、子节点修改次数
    • dataVersion:数据变化号
    • aclVersion:访问控制列表的变化号
    • ephemeralOwner:临时节点判断
    • dataLength:节点数据长度
    • numChildren:子节点个数
  • 相关阅读:
    delphi Int64Rec 应用实例
    PerformEraseBackground 擦除背景(ThemeServices)
    Delphi 的 Bit
    delphi 关于 "高位" 与 "低位"
    PByte和PChar的关系
    执行控制台程序并且获得它的输出结果
    Console下Pause效果的函数
    ByteType字符串中判断是否英文
    窗体包括标题作为一个位图复制到剪贴板
    inf 启动
  • 原文地址:https://www.cnblogs.com/aixing/p/13327399.html
Copyright © 2011-2022 走看看