我是靠谱客的博主 怕孤单方盒,这篇文章主要介绍zookeeper基本概念,现在分享给大家,希望可以做个参考。

Zookeeper

1、概念

分布式、高性能、开源的分布式系统的协调服务,是一个分布式数据一致性的解决方案,为分布式应用提供高性能、高可用且具有严格属性访问控制能力的分布式协调存储服务。

2、应用场景

1)维护配置信息

复制代码
1
2
zab协议保证一致性

2)分布式锁服务

3)集群管理

复制代码
1
2
集群中节点加入移除情况同步给其他节点,以及时调用存储和计算等任务的分配和执行

4)生成分布式唯一ID

3、设计目标

1)高性能

复制代码
1
2
全量数据存储在内存中,直接发起与客户端的所有非事务请求,尤其适合用于以读为主的应用场景

2)高可用

复制代码
1
2
3
4
ZK以集群的方式对外提供服务,一般以奇数个节点3-5台节点, 每台机器都会在内存中维护当前服务器的状态,且互相通信, 超过半数节点正常,集群即正常

3)严格访问数据

复制代码
1
2
3
对client的每个更新请求,ZK都会分配一个全局唯一的递增编号, 编号体现事务操作的先后顺序

二、结构

zkCli.sh -server 10.24.103.11:24002/hbase

1、数据结构

1)ZK每个节点称为一个Znode,每个Znode默认存储1M数据,每个Znode都可以通过其路径唯一标识

2)一个Znode可分为3部分:

复制代码
1
2
3
4
1>节点的数据,即znode data(节点path,节点data的关系) 2>节点的子节点 3>节点的状态stat,用来描述当前节点的创建、修改记录,包括cZxid、ctime等

2、节点类型

分为临时节点和永久节点,节点类型在创建时确定且不能再改变

复制代码
1
2
3
4
5
6
7
1>临时节点 会话(session)结束,临时节点会删除,也可手动删除, 虽然每个临时Znode都会绑定到一个客户端会话,但他们对所有的client都是可见的, 临时的节点不允许拥有子节点 2>永久节点 持久化节点,生命周期不依赖于会话,只有在客户端执行删除操作时才能删除

三、zookeeper的选举制度

1、特点:

复制代码
1
2
3
1)半数以上存活即可服务 2)一个leader和多个followwe

2、选举方式

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1)新集群 依据ID,启动顺序过半数即成为leader 2)非全新集群 因素:数据ID、服务器ID、逻辑时钟 1>逻辑时钟 这个值从0开始,每次选举必须一致。小的选举结果被忽略, 重新投票(即除去选举次数不完整的服务器) 2>数据ID 数据新的version大,每次数据更新都会更新version,数据id大的胜出 (即选出数据最新的服务器) 3>服务器ID 即myid。数据id相同的情况下,服务器id大的胜出(数据相同情况下, 选服务器ID最大的,即权重最大的服务器)

四、基于zookeeper的hdfs高可用

五、基于zokkeeper的yarn高可用

复制代码
1
2
yarn的RM状态信息可以直接写入ZK上,依赖ZK进行准备选举

六、基于zookeeper的kafka选举

复制代码
1
2
3
4
5
6
7
8
1、zk记录了所有broker的存活状态,broker定期向zk发送心跳上报状态, zk维护了一个正在运行且属于集群的broker列表 2、zk负责Controller的选举 3、记录ISR 4、kafka允许client有不同的生产和消费限额,信息保存在zk中 5、保存所有node和topic相关配置信息 6、保存topic的offset值

最后

以上就是怕孤单方盒最近收集整理的关于zookeeper基本概念的全部内容,更多相关zookeeper基本概念内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部