大数据存储系统(5)--- ZooKeeper
来源:互联网 发布:java中的this 编辑:程序博客网 时间:2024/06/08 11:46
1、概念
用于分布式系统中,多个节点协调。
- Leadership election:选举一个代表负责节点
- Group membership:哪些节点还活着?发现崩溃等故障
- Consensus:对一个决策达成一致
Zookeeper:Yahoo研发的开源分布式协调系统。是Hadoop/Hbase环境的一部分。
目前广泛应用于分布式系统对于master节点的容错。
- 使用多台机器运行master节点,一台为主,其余为备份
- 当主master出现故障,某台备份可以成为主master
2、数据模型和API
(1)数据模型:Data Tree
共同维护一个数据状态
(2)Client API
Watch机制:Client的读操作可注册watch,ZooKeeper数据改变,通知Client一次(仅一次,继续关注需继续注册watch)
create(path,data,flags(regular/ephemeral))返回Znode的name
delete(path,version)version与现在Znode一致才删除
exists(path,watch)返回T/F
getData(path,watch)返回data和version
setData(path,data,version)version与现在Znode一致才修改
getChildren(path,watch)返回所有孩子Znode
sync()等待前面的写操作完成create、delete、setdata
支持同步与异步方式
- Synchronous 同步:Client发请求,阻塞等待响应,当请求多时慢
- Asynchronous 异步:允许Client发送多请求,不需要阻塞等待请求完成;提供Callback函数,当请求完成时调用
写操作可串行化 Linearizable writes;
client的读写操作按照FIFO顺序发生 FIFOclient order;
不同client之间的读写顺序没有保证,读可能得到旧数据,so读最新数据要sync!
3、基本原理
(1)ZooKeeper系统结构
(2)ZooKeeper节点内部结构
读请求直接由本地的Replicated database回答。
写请求Atomic Broadcast发给leader统一处理(写操作全局串行化,使用ZAB协议,2PC变型)。
leader将写请求包装为Idempotent Transaction(每个Txn可赤执行多次来恢复,Txn有唯一递增ID)。
Atomic Broadcast后,写操作修改本地Replicated database。
(3)ZAB:两个主要工作模式
- 正常Broadcast:Leader向Follower广播新的写操作。
- 异常Recovery:竞争新Leader,新Leader恢复。
- 大数据存储系统(5)--- ZooKeeper
- 大数据存储系统(1)--- 分布式文件系统
- 大数据存储系统(3)--- Document Store
- Sqoop导入数据到HDFS中(大数据存储系统)
- “大数据分布式存储系统”培训
- 大数据存储系统(2)--- Key-Value Store
- Zookeeper配置(大数据学习跟进)
- 大数据学习笔记(四)-ZooKeeper
- 大数据(六) - ZooKeeper
- 大表(Bigtable):结构化数据的分布存储系统(一)(中文转)
- 大表(Bigtable):结构化数据的分布存储系统(二)(eyson翻译)
- 大数据存储系统(4)--- 图存储系统(Graph Database)
- (第6.1篇)大数据发展背后的强力推手——HBase分布式存储系统
- (大数据之zookeeper)ZooKeeper安装说明
- Google大表(Bigtable):结构化数据的分布存储系统
- 分布式存储系统大数据同步方面的两个问题
- 【Hadoop & Hbase】大数据存储系统编程_读出写入
- 大数据环境下的高性能分布式计算&存储系统
- 【干货】:怎么让元素水平排列
- VC运行时库(/MD、/MT等)
- SQL Server 中关于 @@error 的一个小误区
- [TensorFlow]入门学习笔记(6)-Tensorboard简易教程和模型保存
- java5、java6、java7、java8的新特性
- 大数据存储系统(5)--- ZooKeeper
- Java NIO:浅析I/O模型
- 到底什么是生成式对抗网络GAN?
- 1129
- QT 进程间通信之古老的方法(内存共享)
- Java导出Excel表,POI实现自适应宽度
- C#WinFrom开发系列之关于动态添加生成和删除控件的相关知识
- 令牌桶算法限流
- 浏览器的用户代理(User-Agent)