因为是在极客学院看视频学习的,所以引入的图都是极客学院视频的截图。
设计目标
- 自动快速检测应对硬件错误
- 流式访问数据
- 转移计算比移动数据本身更划算
- 简单一致性模型
- 易购平台可移植性
这里提下master-slave模式:基于经典的命令模式,Master和Slave之间通过相互发送命令(Command)实现交互,命令是一个抽象的概念,Command可以用来分发任务,也可以用来传输数据, 这完全由业务来决定怎么处理, 框架只定义了一个实际的命令-心跳检测命令(Heartbeat Command)。
体系结构图
NameNode 中心服务器
DataNode 不同机架上,数据块 默认三个副本,其中二个存放同一个机架的同一个节点上,另一个在另一个机架的节点上。
基本概念
- 机架
由分布在多个机架上的多个DataNode,组成副本存放策略改进数据可靠性,存放性,网络带宽的利用率。 - 数据块(block)
- 元素数:镜像文件(Fsimage)+日志文件(EditLog)
- 用户数据
HDFS存储的都是用户数据,以数据块的形式存储在DataNode上。
主从节点的通信
写数据流程
读数据流程
这节课是整个体系结构的介绍,相信看了这些图就能有大致的了解。