2023.11.18 - hadoop之zookeeper分布式协调服务

1.zookeeper简介

ZooKeeper概念: Zookeeper是一个分布式协调服务的开源框架。本质上是一个分布式的小文件存储系统
ZooKeeper作用: 主要用来解决分布式集群中应用系统的一致性问题。
ZooKeeper结构: 采用树形层次结构,没有目录与文件之分,ZooKeeper树中的每个节点被称为—Znode。且树中的每个节点可以拥有子节点

2.启动和配置环境变量

在远程工具里发送三条命令

[root@nodex ~]# echo 'export ZOOKEEPER_HOME=/export/server/zookeeper' >> /etc/profile
[root@nodex ~]# echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
[root@nodex ~]# source /etc/profile

启动集群

发送3条命令给3台虚拟机

[root@nodex ~]# zkServer.sh start

还可以查看服务状态: [root@node]# zkServer.sh status

关闭zk服务的命令是: [root@node]# zkServer.sh stop

客户端连接

连接服务 方式1:直接连接本地: [root@node1 ~]# zkCli.sh

方式2:连接其他节点: [root@node1 ~]# zkCli.sh -server 节点地址

[root@node1 ~]# zkCli.sh

3.shell命令

查看所有shell命令: help

create [-s] [-e] 节点绝对路径 节点数据: 创建数据节点    注意: -s代表序列化节点    -e代表临时节点

delete 节点绝对路径 [version]: 删除一级节点  注意: 此方式如果有子节点是不能删除的
rmr 节点绝对路径: 删多层除节点(如果有子节点也可以删除)

set 节点绝对路径 data [version]: 设置 /修改节点数据

get 节点绝对路径 [watch]: 获取数据    注意: watch是监听
ls 节点绝对路径  : 查看节点信息        举例: 查看根路径下节点   ls /
ls2 节点绝对路径 : 查看节点详情信息
history: 查看操作历史

quit: 退出

4.节点分类

  1. 节点分类: 永久普通节点,临时普通节点,永久序列化节点,临时序列化节点
  2. 创建永久普通节点:  create /节点 数据
  3. 创建临时普通节点:  create -e /节点 数据
  4. 创建永久序列化节点: create -s /节点 数据
  5. 创建临时序列化节点: create -e -s /节点 数据
  6. 注意: 临时节点不能创建子节点

5.节点属性

每个znode都包含了一系列的属性,通过命令get /节点,可以获得节点的属性 注意: 对于zk来说,每次的变化都会产生一个唯一的事务id,zxid(ZooKeeper Transaction Id)。通过zxid,可以确定更新操作的先后顺序。例如,如果zxid1小于zxid2,说明zxid1操作先于zxid2发生,zxid对于整个zk都是唯一的,即使操作的是不同的znode。 cZxid :Znode创建的事务id。 ctime :Znode创建时的时间戳.

mZxid :Znode被修改的事务id,即每次对当前znode的修改都会更新mZxid。 ​ mtime :Znode最新一次更新发生时的时间戳.

pZxid :Znode的子节点列表变更的事务ID,添加子节点或删除子节点就会影响子节点列表 ​ cversion :子节点进行变更的版本号。添加子节点或删除子节点就会影响子节点版本号

dataVersion:数据版本号,每次对节点进行set操作,dataVersion的值都会增加1(即使设置的是相同的数据),可有效避免了 数据更新时出现的先后顺序问题。 ​ aclVersion : 权限变化列表版本 access control list Version ​ ephemeralOwner : 字面翻译临时节点拥有者,永久节点值为: 0x0,临时节点值为:会话ID (不是0x0的就是临时节点) ​ dataLength : Znode数据长度 ​ numChildren: 当前Znode子节点数量(不包括子子节点)

 

6.ZK集群特点

1. 全局数据一致: 集群中每个服务器保存一份相同的数据副本,client无论连接到哪个服务器,展示的数据都是一致的,这是最重要的特征;

2. 可靠性: 如果消息被其中一台服务器接受,那么将被所有的服务器接受。

3. 顺序性: 包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。

4. 数据更新原子性: 一次数据更新要么成功(半数以上节点成功),要么失败,不存在中间状态;

5. 实时性: Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。

7.watch监听机制

在选举atvice时经常也会把设置为临时节点

ZooKeeper中,引入了Watcher机制来实现数据发布/订阅功能,一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,使他们能够做出相应的处理。 ZooKeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些事件触发了这个Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。

watch监听机制过程: 客户端向服务端注册Watcher     服务端事件发生触发Watcher     客户端回调Watcher得到触发事件情况
Watch监听机制注册格式:  get /节点绝对路径 watch
Watch监听机制特点:
   先注册再触发: Zookeeper中的watch机制,必须客户端先去服务端注册监听,这样事件发送才会触发监听,通知给客户端
   一次性触发: 事件发生触发监听,一个watcher event就会被发送到设置监听的客户端,这种效果是一次性的,后续再次发生同样的事件,不会再次触发。
   异步发送: watcher的通知事件从服务端发送到客户端是异步的。
   通知内容: 通知状态(keeperState),事件类型(EventType)和节点路径(path)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/191252.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“流量为王”的时代一去不返!如何押注互联网下一个黄金十年

目录 1“流量为王”的时代一去不返!如何押注互联网下一个黄金十年 2AI夺走的第一份工作竟是OpenAI CEO?阿尔特曼被“扫地出门”,网友热评:是被GPT-5取代了吗?马斯克更“毒”,挂出求职申请链接 3GPT-4V新玩…

人工智能基础_机器学习044_逻辑回归代码实现与手动计算概率---人工智能工作笔记0084

上面我们已经把逻辑回归的公式,以及,公式对应的图形都画画出来了,然后我们再来看看 如何用代码实现 可以看到上面是代码,咱们自己去写一下 import numpy as np from sklearn.linear_model import LogistieRegression from sklearn import datasets # 训练数据和测试数据拆分…

WeTab--颜值与实力并存的浏览器插件

一.前言 现在的浏览器花花绿绿,有大量的广告与信息,令人目不暇接。有没有一款好用的浏览器插件可以解决这个问题呢?我愿称WeTab为版本答案。 WeTab的界面: 干净又整洁。最最关键的是还有智能AI供你服务。 这个WeTabAI就像chatgp…

DB9串口引脚介绍

一、公头和母头 图片示意源于网络: 二、 每个引脚的功能定义 公头:所有排针式的接头(5针朝上,从左到右序号依次是1~9) 母头:所有插槽式的接孔(5孔朝上,从右到左序号依次是1~9) 针…

Matalab插值详解和源码

转载:Matalab插值详解和源码 - 知乎 (zhihu.com) 插值法 插值法又称“内插法”,是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方…

蓝桥杯每日一题2023.11.18

题目描述 蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目分析 本题使用搜索,将每一个格子进行初始赋值方便确定是否为相邻的数,将空出的两个格子首先当作已经填好数值为100,此时从第一个格子右边的格子开始搜索&#xff…

算法通关村第十关-白银挑战数组最大K数

大家好我是苏麟 , 今天带来一道应用快排的题 . 数组中的第K个最大元素 描述 : 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 题目 : Le…

036、目标检测-锚框

之——对边缘框的简化 目录 之——对边缘框的简化 杂谈 正文 1.锚框操作 2.IoU交并比 3.锚框标号 4.非极大值抑制 5.实现 拓展 杂谈 边缘框这样一个指定roi区域的操作对卷积神经网络实际上是很不友好的,这可能会对网络感受野提出一些特定的要求&#xff0…

ogrinfo不是内部或者外部命令

这个是GDAL的问题,我是通过OSGeo4w安装的,出来就是这个问题,教程没有仔细看干。 第一次安装,选择express install!!!! 第一次安装,选择express install!&…

stable diffusion十七种controlnet详细使用方法总结

个人网站:https://tianfeng.space 前言 最近不知道发点什么,做个controlnet 使用方法总结好了,如果你们对所有controlnet用法,可能了解但是有点模糊,希望能对你们有用。 一、SD controlnet 我统一下其他参数&#…

操作系统·进程同步

进程同步:异步环境下的一组并发进程因直接制约而互相发送消息、互相合作、互相等待,使得各进程按照一定的速度执行的过程。 进程同步的主要任务是使并发执行的诸进程之间能有效地共享资源和相互合作,使执行的结果具有可再现性。 4.1 进程同…

智慧城市指挥中心,大屏幕究竟有什么用?

目前很多地区有在兴建智慧城市的项目,其城市指挥中心内一般都建有一张巨大的屏幕,这张屏幕究竟有什么用?是否可以用普通的电脑显示器进行代替呢? 智慧城市指挥中心内的巨大屏幕是智慧城市项目中的重要组成部分,其作用不…