当前位置: 代码网 > 科技>人工智能>数据分析 > Apache ZooKeeper(Hadoop)详细原理和使用

Apache ZooKeeper(Hadoop)详细原理和使用

2024年07月28日 数据分析 我要评论
例如,如果 zxid1小于 zxid2,说明 zxid1 操作先于 zxid2 发生,zxid 对于整个zk 都是唯一的,即使操作的是不同的 znode。dataVersion:数据版本号,每次对节点进行 set 操作,dataVersion 的值都会增加 1(即使设置的是相同的数据),可有效避免了数据更新时出现的先后顺序问题。首先来说一下zookeeper的工作原理,它是由leader来进行对事务请求的调度和处理,然后follower处理非客户端的事务请求。通过命令 get,可以获得节点的属性。

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,可以获得节点的属性。

        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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com