千家信息网

大数据处理之中Zookeeper

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,大数据处理之中Zookeeper,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Zookkeeper概述是一个分布式协调服
千家信息网最后更新 2025年12月03日大数据处理之中Zookeeper

大数据处理之中Zookeeper,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Zookkeeper概述

是一个分布式协调服务的开源框架

本质上是一个分布式的小文件存储系统,提供基于类似文件系统的目录树方式的数据存储。

解决的问题:分布式集群中应用系统一致性问题

特性:

数据全局一致

可靠性:消息被一台服务器接收,则可以被其它服务器接收

顺序性:全局有序和偏序两种,消息发布的顺序性

数据更新的原子性:一次性数据更新成功(半数机器/节点以上)

实时性:在一个时间范围内获取服务器的更新信息,或者失效的信息

Zookeeper集群角色

主节点(Leader):1、集群工作的核心,事务请求(写)的唯一调度和处理者,保证集群事务处理的顺序性。2、集群内部各个服务器的调度者

从节点(Follower):1、处理客户端非事务请求。2、转发事务请求给主节点,3、参与集群主节点选举投票

观察者(Observer):1、更新集群最新状态变化并同步这些状态,对非事务请求进行响应,2

将事务请求转发给主节点。3、不参与主节点选举投票,通常用于不影响集群事务处理能力的前提下提升非事务处理的能力,或集群访问量较大的情况下

Zookeeper集群搭建。。。。。

Zookeeper的数据模型:

与标准文件系统相似,采用树形层次结构,树中的节点被称为Znode,每个节点可以拥有子节点

不同:

1、Znode兼具文件和目录两种特点。

2、Znode具有原子性操作

3、存储数据大小有限制。最大是1M

4、Znode通过路径引用。路径唯一

5、序列化特性。创建节点时会在节点名后添加不断增加 的序列号,其对于父节点来说是唯一的,可以辨别节点创建的先后顺序,是一个10位的数字

节点组成:

stat:状态信息、描述其Znode的版本、权限信息等。

data:与该Znode关联的数据

children:该Znode下的子节点

节点类型:临时节点和永久节点

临时节点:不允许存在子节点

创建Znode时有四种选项:永久节点、临时节点、永久序列化节点、临时序列化节点

节点的属性:

dataVersion:数据版本号

cversion:子节点版本号,子节点变化时值+1

acVersion:版本控制号

cZxid:Znode创建事务的ID

mZid:Zode被修改的事务ID,zk每次变化时会产生一个唯一的事务ID(zxid),具有先后顺序

ctim:节点创建时间戳

mtim:节点最近更新时的时间戳

ephemeralOwner:如果此节点时临时节点,则值是与该节点绑定的sessionid,若不是则值为0

节点操作:

客户端链接:zkCli.sh -sever ip

create [-s][-e] path data,s表示永久节点,e表示临时节点

set path data

delete path data

get path

quota:对节点添加限制,setquota [-n|-b] val path,n表示子节点最大个数,b表示数据值最大长度,val子节点最大个数或数据值最大长度,path节点路径

listquota:查看是否设置限制即指定节点的quota,软性限制(输出警告日志)

delquota:delquota [-n|-b] path 删除指定节点的quota

history:列出历史命令

redo:重新执行命令,与hostory结合使用。redo 命令编号

Zookeeper Watcher(数据订阅/发布模式)

使用watcher(监听)机制实现分布式通知功能,Zookeeper允许客户端向服务端注册一个watcher监听,服务端一些事件触发这个watcher时,服务端会向客户端发送一个事件通知来实现分布式通知的功能。

过程:1、客户端向服务端注册一个监听watcher,2、服务端触发注册的watcher,3、客户端回调watcher得到触发事件情况

watcher机制特点:

一次性触发:事件触发监听后,一个watcher event(监听事件)被发送到对应的客户端,这种效果只有一次,后续再次发生同样的事件,不会再次触发

事件封装: 使用WatcherEvent对象封装服务端事件并传递,包含三个属性,通知状态(keeperState)、事件类型(EventType)、节点路径(Path)

event异步发送:

先注册在触发:连接事件不需要先注册,其它的需要事先注册

shell客户端设置监听(Watcher):

get path watch 注册监听事件

Zookeeper Java API(Zookeeper 操作API)

连接操作、Watcher事件操作::

Zookeeper选举机制

默认采用FastLeaderElection算法,采用投票大于把半数胜出大的逻辑

服务器ID:服务器编号,编号越大在算法中权重越大

选举状态:LOOKING --->竞选状态、FOLLOWIING--->随从状态(参与投票)、OBSERVING--->观察状态(不参与投票)、LEADDING--->领导者状态

数据ID:服务器中存放的最新数据的版本version,数据越大说明版本越新、在选举算法中的权重也越大

逻辑时钟: 投票次数,同一轮选举过程中数值时相同的,

全新集群选举(刚搭建的新集群):每台机器给自己投票,票数过半选举结束,服务器ID大的优先级高

非全新集群的选举(集群提供服务一段时间后进行选举):

选举标准:1、逻辑时钟小的选举结果被忽略,重新投票。2、统一逻辑时钟、数据ID大的胜出。3、数据ID相同的服务器ID大的胜出。

Zookeeper典型应用:

数据发布与订阅(配置中心):

1、小型数据。

2、获取数据的同时还要设置监听,拿到数据后再次设置监听保证监听时刻有效

命名服务:由于Zookeeper节点路径的全局唯一性,对提供服务的对象进行命名,客户端通过应用名字可以获取对应的资源和服务地址,提供者等信息,,如:dubbo将提供的服务地址存储到zk上,映射到对应的服务名称,维护全局的服务地址列表

分布式锁:由于其数据的一致性,锁服务分为:保持独占、控制时序

保持独占:单例锁。将zk的节点看作一把锁,所有的客户端到指定的目录创建节点,同通过创建非序列化的临时节点实现独占性

控制时序:按顺序访问,如队列。同过将zk节点看作一把锁,但这次创建的是序列化临时节点,从而实现全局的时序性

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

节点 服务 数据 集群 事件 选举 事务 客户 客户端 监听 服务器 状态 投票 处理 分布式 序列 版本 顺序 最大 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 宁夏信息化工业互联网软件开发 数据库主从备份 app软件出现没有可用服务器 静安区多功能软件开发服务是什么 线性代数在软件开发用的多吗 七台河市采暖自动化控制软件开发 浙江快门网络技术有限公司 数据库插入外键约束 学习网络安全师 数据库系统安全是指 中国科学引文数据库杂志 工商联会员企业数据库 2018《网络安全法》题目 遂宁软件开发厂家 金山词霸下载软件开发 无主之地加入哪个服务器不卡 服务器查看客户端的屏幕 宽视网络技术开发公司 oecd数据库有立陶宛的数据吗 温州市网络安全宣传周答案 软件开发转正答辩ppt 央行互联网金融科技 静安区数据软件开发优势 上海国德网络技术有限公司 衡阳棋牌游戏软件开发 徐州软件开发管理 赤峰市映桥软件开发服务部 软件工程可以从事网络安全吗 html5数据库 正规网络技术咨询诚信服务
0