Apache ZooKeeper(Hadoop)详细原理和使用
1. zookeeper根本知识zookeeper是一个分布式协调服务的开源框架,zookeeper其实就是一个基于分布式的一个小的文件存储体系,它具有以下五个特性;
1.全局数据一致性;
集群中每个服务器保存一份相同的数据副本,client (客户端)无论毗连到哪个服务器,展示的数据都是一致的。
2.顺序性;
包罗全局有序和偏序两种:全局有序是指如果在一台服务器上消息 a 在消息 b 前发布,则在全部 Server (节点)上消息 a 都在消息 b 前被发布;偏序是指如果一个消息 b 在消息 a 后被同一个发送者发布,a 必将排在 b 前面。
3.可靠性;
如果消息被此中一台服务器担当,那么将被全部的服务器担当。
4.实时性;
Zookeeper 包管客户端将在一个时间间隔范围内获得服务器的更新信息,大概服务器失效的信息。
5.数据原子性;
数据的一次更新要么成功要么失败,不存在中心阶段。
2.有关zookeeper投票选举出leader
起首来说一下zookeeper的工作原理,它是由leader来举行对事务请求的调治和处理,然后follower处理非客户端的事务请求。转发事务给leader。
然后根据节点id和事务id举行投票选举出leader,事务最新,大概节点id权重较大。则此节点被投票选举为leader 。leader负责处理事务的资源调治,follower负责非事务的使命管理和资源调治。
3.zookeeper实用命令
3.1毗连客户端
使用此命令举行客户端毗连,之后输入help可以获取更详细的命令。
#zookeeper文件路径 - zkCli.sh –server ip 3.2建立节点
(临时节点在会话结束时会自动结束)
create '文件名' /test '内容' #默认永久有效节点
create -e '文件名' /test_e '内容' #创建临时节点
create -s '文件名' /test_s '内容' #创建顺序节点 3.3读取节点
ls /
#或者
get / 3.4更新节点
set /'文件名' '更新的新内容' 3.5删除节点
delete /'文件名'
#or
rmr /'文件目录' #可以递归删除 4.节点属性
通过命令 get,可以获得节点的属性。
https://i-blog.csdnimg.cn/direct/a09044c9500c46fe9dde3754c4a4ecc8.png
dataVersion:数据版本号,每次对节点举行 set 操作,dataVersion 的值都会增长 1(即使设置的是相同的数据),可有效避免了数据更新时出现的先后顺序问题。 cversion :子节点的版本号。当 znode 的子节点有变化时,cversion 的值就会增长 1。 cZxid :Znode 创建的事务 id。 mZxid :Znode 被修改的事务 id,即每次对 znode 的修改都会更新 mZxid。对于 zk 来说,每次的变化都会产生一个唯一的事务 id,zxid(ZooKeeper Transaction Id)。通过 zxid,可以确定更新操作的先后顺序。例如,如果 zxid1小于 zxid2,说明 zxid1 操作先于 zxid2 发生,zxid 对于整个zk 都是唯一的,即使操作的是差别的 znode。 ctime:节点创建时的时间戳. mtime:节点最新一次更新发生时的时间戳. ephemeralOwner:如果该节点为临时节点, ephemeralOwner 值表示与该节点绑定的 session id. 如果不是, ephemeralOwner 值为 0. 5.ZooKeeper Watcher(监听机制)
ZooKeeper 允许客户端向服务端注册一个 Watcher 监听,当服务端的一些事件触 发了这个 Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。详细命令如下;
get /'文件名' watch
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]