Zookeeper--简介


一、 Zookeeper–简介

1. 概述

概述:
    它是一款非常好用的 大数据分布式协调服务组件, 主要是用来帮助我们管理大数据进群的, 例如: 主备切换, 选举机制, 全局数据一致性...
    吉祥物是: 1个拿着铁锹的小人.

2. 本质

本质:
    ZK本身也是1个小型的分布式文件存储系统, 采用ZNode节点的方式来存储数据, 底层是: 树形结构.  每个节点的大小不能超过: 1MB.
回顾: 树形结构特点:
    1. 有且只能有1个根节点.
    2. 每个节点都有若干个子节点及1个父节点(根节点除外)
    3. 没有子节点的节点称之为: 叶子节点.

3. 节点的分类

Znode节点的分类:
    永久(无序)节点:   Persistent
        客户端的会话结束, 节点依旧存在.
    临时(无序)节点:   Ephemeral
        客户端的会话结束, 节点小时(会被自动删除).
    永久有序节点:
        Persistent + Sequential
        客户端的会话结束, 节点依旧存在, 会在节点名后边加10位数字, 升序递增. 0000000000, 0000000001...
    临时有序节点:
        Ephemeral + Sequential
        客户端的会话结束, 节点消失, 会在节点名后边加10位数字, 升序递增. 0000000000, 0000000001...
    细节:
        临时节点不能有子节点. 

在这里插入图片描述

二、Zookeeper–环境准备及架构介绍

1. 环境准备

  环境准备:
      1. 三台虚拟机都需要安装: Zookeeper环境, 这个不用做了, 我给你装好了.
      2. 三台虚拟机都要配置path环境变量, 这个我没做, 需要你手动做.
          echo 'export ZOOKEEPER_HOME=/export/server/zookeeper' >> /etc/profile
          echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
          source /etc/profile
      3. 分别在三台虚拟机中启动, 并查看 Zookeeper节点信息即可.
          zkServer.sh start | status | stop       -- 启动, 查看状态, 关闭
          zkCli.sh                                -- 打开ZK的客户端.

2. Zookeeper架构图

  ZK的架构介绍:
      Leader:     主节点
          1. 管理整个ZK集群, 负责: 全局数据一致性.
          2. 负责处理 数据事务操作(,,)
          3. 负责转发 数据非事务操作() 给 Follower
      Follower:
          1. 实时和Leader同步, 保证: 全局数据一致性.
          2. 负责处理 数据非事务操作()
          3. 负责转发 数据事务操作(,,) 给 Leader
          4. 有选举权.
      ObServer:
          除了没有选举权, 剩下的和 Follower一样.  大公司, 大规模集群, 才会考虑部署ObServer.

在这里插入图片描述

三、Zookeeper–Shell操作

1. 连接客户端的方式

连接客户端的方式:
	zkCli.sh                连接本地(本机)
	zkCli.sh -server node2  连接node2机器

2. 常用Shell命令

常用Shell命令:
	help                         -- 查看ZK支持的所有Shell命令
	create [-s] [-e] path data	 -- Sequential(有序), Ephemeral(临时), 创建节点.
	delete path [version]        -- 删除节点, 只能删除(叶子节点)
	rmr path                     -- 删除节点及其字节
	set path data [version]      -- 修改节点的内容
	get path [watch]             -- 查看节点内容
	ls path [watch]              -- 查看节点简单信息
	ls2 path [watch]             -- 查看节点详细信息
	history                      -- 查看历史命令
	redo 历史命令编号              -- 根据编号, 重新执行对应的 命令.

四、 Zookeeper–数据模型

1. Znode兼具有文件 和 目录的功能, 既能存储数据, 也能有子级.
2. Znode操作具有原子性, 无论在哪台机器修改了节点值, 其它机器再查也是修改后的.
3. Znode存储数据有大小限制, 每个节点不超过1MB.
	细节: 我们用ZK不是用它存数据的功能, 而是管理大数据集群.
4. Znode节点必须通过 绝对路径的写法才可以获取, 即:  /aa

五、Zookeeper–特点

1. 全局数据一致性.   你访问哪台机器, 看到的数据都是一样的.
2. 可靠性.
3. 顺序性.         全局有序, 偏序.
4. 数据更新原子性.
5. 实时性.

六、Zookeeper–watch监听机制

1. watch监听机制

1. 先注册, 后监听.
2. 当事件触发后, 会将触发结果告知 监听者.
3. 异步发送监听结果的.
4. 监听是一次性触发, 之后在触发响应的内容, 也不会给 监听者发送消息了.

2. 注意点

问题: watch监听机制, 有什么用?
答案: 它(watch监听机制) 结合临时节点一起用, 可以实现: 主备切换.

七、Zookeeper–选举机制

1. 原则

原则:
	过半原则, 某个机器获取的票数超过集群总数的一半, 它就是Leader, 剩下的是Follower.

2. 选举机制的方式

选举机制的方式:
	新集群: 参考myid值, 优先投票给myid值大的机器.
	旧集群: 参考(节点)最后一次更新的事务id, 优先投票给事务id大的节点(机器), 如果事务id一致, 则参考 myid值, 投票给myid值大的机器.
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值