美文网首页玩转大数据
(七)大数据学习之Zookeeper

(七)大数据学习之Zookeeper

作者: Movle | 来源:发表于2019-11-23 18:18 被阅读0次

    1.Zookeeper

    (1)官网:http://zookeeper.apache.org/
    (2)介绍

    • Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调
    • ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服 务。所有这些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做 很多工作来修复不可避免的错误和竞争条件。由于难以实现这些类型的服务,应用程序 最初通常会吝啬它们,这使得它们在变化的情况下变得脆弱并且难以管理。即使正确完 成,这些服务的不同实现也会在部署应用程序时导致管理复杂性。

    2.Zookeeper工作原理:

    (1)zookeeper功能:

    • 存储+监听
      (2)Zookeeper工作原理
    zookeeper功能

    3.Zookeeper角色

    (1)主从结构:

    • Leader 领导者 ->主
    • Follower 追随者 ->从
      (2)zk集群中只要有半数以上的节点存活,zk集群就能正常工作。所以搭建zk集群最好搭建 奇数台(3,5,11)

    4.Zookeeper功能

    大数据中使用zookeeper业务:
    (1)做统一的配置管理
    (2)做统一的命名服务
    (3)做统一的集群管理
    (4)做服务器的动态上下线感知(代码)

    5.Zookeeper单节点安装部署

    (1)下载安装包
    (2)上传到linux
    (3)解压

    tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/module 
    

    (4)修改配置文件zoo.cfg

    cd /opt/module/zookeeper-3.4.14  
    mkdir zkData                //创建目录
     
    cd /opt/module/zookeeper-3.4.14/conf     //进入配置文件所在文件夹
     
    mv zoo_sample.cfg zoo.cfg              //重命名配置文件
    vi zoo.cfg                           //修改zoo.cfg
    

    修改内容为:

    dataDir=/opt/module/zookeeper-3.4.14/zkData       //修改为刚才新建的目录地址
    

    (5)创建文件夹zkData,见上一步
    (6)启动zookeeper

    bin/zkServer.sh start      //启动zookeeper
    

    (7)启动zookeeper客户端

    cd /opt/module/zookeeper-3.4.14/bin             //
    ./zkCli.sh        //启动zookeeper客户端
    

    6.Zookeeper集群安装部署

    (1)下载安装包:
    (2)上传到Linux:
    (3)解压:

    tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/module 
    

    (4)修改配置文件名

    cd /opt/module/zookeeper-3.4.14/conf   //进入目录
    mv zoo_sample.cfg zoo.cfg              //重命名配置文件
    

    (5)修改配置文件
    a.新建zkData文件夹

    cd /opt/module/zookeeper-3.4.14    
    mkdir zkData               //新建目录
    cd /opt/module/zookeeper-3.4.14/conf   //进入目录
    
    vi zoo.cfg       //修改配置文件 
    

    b.修改zoo.cfg,其修改内容如下:

    dataDir=/opt/module/zookeeper-3.4.14/zkData       //修改为刚才新建的目录地址 
    
    //新增内容
    server.1=bigdata121:2888:3888
    server.2=bigdata122:2888:3888
    server.3=bigdata123:2888:3888
    

    c.在zkData新建myid文件

    cd /opt/module/zookeeper-3.4.14/zkData
    
    touch myid            //新建myid
    vi myid             //修改myid
    

    d.myid修改内容如下:

    1                //增添内容
    

    (6)拷贝Zookeeper到其他机器

    scp -r zookeeper-3.4.14 bigdata122:/opt/module/
    scp -r zookeeper-3.4.14 bigdata123:/opt/module/
    

    (7)注意需要修改每台机器的myid文件,设置为当前的机器编号即可

    //bigdata122机器
    cd /opt/module/zookeeper-3.4.14/zkData
    
    vi myid 
    
    //myid内容修改为2
    2
    //bigdata123机器
    cd /opt/module/zookeeper-3.4.14/zkData
    
    vi myid 
    //myid内容修改为3
    3 
    

    (8)启动zookeeper集群

    cd /opt/module/zookeeper-3.4.14 
    
    bin/zkServer.sh start         //每台机器都要启动
    

    (9)查看zookeeper状态

    cd /opt/module/zookeeper-3.4.14 
    
    bin/zkServer.sh status        //查看zookeeper状态
    

    (10)关闭zookeeper集群

    cd /opt/module/zookeeper-3.4.14 
    bin/zkServer.sh stop      //关闭
    

    7.Zookeeper选举机制

    选举机制

    8.命令行操作

    (1)配置环境变量

    vi ~/.bash_profile   //修改配置文件
    

    修改内容为:

    ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.14
    export ZOOKEEPER_HOME
    PATH=$ZOOKEEPER_HOME/bin:$PATH
    export PATH
    

    (2)启动客户端

    zkCli.sh
    

    (3)连接其他机器客户端操作

    connect bigdata122:2181
    

    (4)查看历史操作

    history
    

    (5)查看当前节点信息

    ls /
    

    (6)存储:创建节点
    命令格式:

    • create path value
    create /itstar 10 
    

    (7)查看节点的值
    命令格式:

    • get path
    get /itstar
    

    (8)创建节点的可选项
    命令格式:

    • create [-s] [-e] path data acl
    create -e /reba henmei                 //注意:此时-e创建的是临时的短暂节点,退出客户端后消失。退出客户端:quit
    
    create -s /jielun henshuai       //注意:此时-s创建是带序号的节点,可以创建节点名相同的,序号依次累加
    
    create -e -s /yizhou henchou    //创建短暂带序号节点
    

    (9)修改节点值
    命令格式:

    • set path data [version] //version版本,必须从0开始
    set /itstar 20 
    

    (10)删除节点
    命令格式:

    • delete path
    delete /itstar
    

    (11)创建子节点

    create /reba/pannan paoqilai
    

    (12)递归删除

    rmr /reba
    

    (13)监听

    • 获得监听:get path watch
    • 获得当前节点下增减变化:ls path watch
      (14)查看当前节点状态
      命令格式:
    • stat path
    stat /itstar
    

    9.节点状态信息

    cZxid = 0x200000006                   //zookeeper事务id
    ctime = Sun Jul 21 19:12:54 CST 2019  //节点创建时间
    mZxid = 0x200000006                   //最后更新的czxid
    mtime = Sun Jul 21 19:12:54 CST 2019  // 最后更新的时间
    pZxid = 0x200000006                   //最后更新子节点的czxid
    cversion = 0                          //子节点的变化号子节点修改次数
    dataVersion = 0                        //数据变化号
    aclVersion = 0                         //访问控制列表的变化号
    ephemeralOwner = 0x0                  //临时阶段判断
    dataLength = 2                        //节点数据长度
    numChildren = 0                       //子节点个数
    

    10.JavaAPI实操

    (1)在pom.xml文件中导入依赖

    相关文章

      网友评论

        本文标题:(七)大数据学习之Zookeeper

        本文链接:https://www.haomeiwen.com/subject/zhnhwctx.html