这是我参与「第四届青训营 」笔记创作活动的的第13天
HDFS
功能特性:
- 分布式
- 容错
- 高可用
- 高吞吐:client直接从DataNode读取用户数据
- 可扩展:DataNode数量可达10w
- 连接
NameNode: 维护目录树,维护文件和数据块的关系,维护文件块存放节点信息,分配新文件存放节点
DataNode: 数据块存取,数据块列表汇报给NameNode,副本复制
分布式存储系统基本概念:
- 容错能力
- 一致性模型:保证副本一致
- 可扩展性
- 节点体系
- 数据放置
- 单机存储引擎
NameNode维护目录树: 完整的存放在内存里,然后定时存在硬盘上,修改只会修改内存里的目录树
NameNode数据块信息维护: 维护每个数据块所在的节点信息,根据DataNode汇报的信息动态维护位置信息,
DataNode以block为单位向NameNode
NameNode 架构: ActiveNameNode: 主节点,提供服务,发起变更 StandbyNamenode:备节点,消费日志,不发起变更 ZooKeeper:统一协调服务, BookKeeper:日志存储服务,低延时 ZKFC:触发主备切换
Quorum机制: 多副本一致性读写 规则:Qr+Qw > Q
延迟分布:p95延迟为1ms,代表95%的请求延迟要低于1ms 长尾延迟:(p99/p999)的延迟,衡量系统最差的请求的情况 木桶原理:访问的服务变多,尾部的请求变慢 如果读取速度过慢,会导致客户端阻塞;只要任何数据块的读取受到长尾影响,整个任务都会因此停滞
HDFS的高可用性确保了业务能稳定运行,数据可以随时访问 高扩展性确保了能储存的数据量可以无限扩展下
HBase
基于HDFS实现存储计算分离架构的分布式表格存储服务
- 是一个开源的NoSQL分布式数据库
- 半结构化数据结构,按列族稀疏存储
- 支持按需读写部分列
- 仅支持单行内原子性
- 适用于TB/PB级海量的数据
一些典型应用: 查询最新订单进度;搜索推荐引擎;用户交互数据;
架构设计:
- HMaster:元数据管理,保证RegionServer生命周期;协调数据故障恢复
- RegionServer:提供数据读写服务;处理HMaster下达的元数据操作
- ThriftServer