zookeeper入门综合概要介绍

~ zookeeper

  • 原理
    • zookeeper是一个具有高可用性的高性能协调服务
    • 模型
      • zookeeper维护着一个具有高可用性的树形层次结构
      • 树节点被称为znode
        • znode可以存储数据
          • ACL
            • 决定谁可以对它执行何种操作
          • 数据访问具有原子性
            • 要么读到所有数据要么读取失败
        • znode通过路径被引用
          • 必须是绝对路径,不支持路径解析
          • 由Unicode字符串构成
          • zookeeper是保留词
            • /zookeeper树用来保存管理信息
        • 类型
          • 短暂znode
            • 会话结束后被删除
            • 不可以有子节点
          • 持久znode
        • 顺序号
          • 递增
          • 用于全局排序
        • 观察
          • znode发生某些变化时,观察机制可以让客户端得到通知。
    • 操作
      • create
      • delete
      • exists
      • getACL,setACL
      • getChildren
      • getData,setData
      • sync
    • 实现
      • standalone
      • replicated mode
        • 复制模式
          • 整个集群被称为集合体
            • 通常包含奇数台机器
          • 确保对znode树的每一个修改都会被复制到集合体中超过半数的机器上。
        • Zab协议
          • 领导选举
            • 所有机器通过选择过程选出一台leader领导者
              • 其他机器被称为跟随者follower
              • 如果领导者出现故障,其余机器会选出另外的领导者,并与之一起继续提供服务。
                • 原领导者故障恢复后会成为一个跟随者。
            • 半数以上(或指定数量)的跟随者已经将状态与领导者同步,则表明这个阶段完成
          • 原子广播
            • 所有的写请求都会被转发给领导者,再由领导者将更新广播给跟随者。
            • 半数以上的跟随者将更新持久化后,领导者才会提交这个更新,然后客户端才会收到一个更新成功的响应。
    • 一致性
      • 每个对znode树的更新都被赋予一个全局唯一的ID,称为zxid
        • 决定了分布式系统的执行顺序
      • 顺序一致性
        • 更新会按其发送顺序被提交。
      • 原子性
      • 第一系统映像
      • 持久性
      • 及时性
    • 会话
      • 会话超时
        • 滴答tick time
        • 服务器越多,会话超时应该设置的越大,连接超时反而越小。
      • 有唯一的ID和密码
    • 状态
      • connecting
      • connected
      • closed
    • 客户端
      • 客户端连接
        • bin/zkCli.sh -server 127.0.0.1:2181
      • 客户端命令
        • ls /
        • ls2
        • get /
  • 安装
    • 单机
      • conf/zoo.cfg
        • tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181
      • bin/zkServer.sh start
      • 连接zookeeper
        • bin/zkCli.sh -server 127.0.0.1:2181
    • 集群(复制模式)
      • zoo.cfg
        • clientPort=2181
        • dataDir=/home/myhadoop/zk/data
        • server.10=master.hadoop:2888:3888
        • server.11=slave1.hadoop:2888:3888
        • server.12=slave2.hadoop:2888:3888
      • 每台机器分别设置data/myid为其在zoo.cfg下定义的id
        • data
          • myid
            • 10
      • 分别启动
        • bin/skServer.sh start
      • 查看状态
        • bin/zkServer.sh status  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值