1. HDFS 架构
HDFS架构图.png1.1. NameNode
- 存储元数据,
-- 如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限);
-- 每个文件的块列表和块所在的 DataNode 等;
1.2. DataNode
- 在本地文件系统存储文件块数据,以及数据块的校验和;
1.3. Secondary NameNode
- 用来监控 HDFS 状态的辅助后台程序,每隔一段时间获取 HDFS 元数据的快照;
2. YARN 架构
YARN架构图.png2.1. ResourceManager(RM)
- 处理客户端提交的作业请求(Job Submission);
- 监控 NodeManager,检查 NodeManager 节点状态、资源请求;
- 启动或监控 ApplicationMaster(ApplicationMaster 负责处理 每一个 Job 任务);
- 资源的调度与分配;
2.2. NodeManager(NM)
- 管理节点上的资源;
- 处理来自 ResourceManager 的命令;
- 处理来自 ApplicationMaster 的命令;
2.3. ApplicationMaster(AM)
- 负责数据切分
- 为应用程序申请资源,并分配给内部的 Job 任务;
- 任务的监控与容错;
2.4. Container
- Container 是 YARN 中的资源抽象,它封装了某个节点上帝额读未读资源,如内存、CPU、磁盘、网络等;
- 主要为 AM 执行 Job 任务提供服务;
- 角色类似于 VMware 虚拟机,主要提供资源虚拟化服务;
3. MapReduce
MapReduce过程.jpg3.1.
HDFS 应用场景
2.1. 适用场景
- 存储非常大的文件,
- 需要高吞吐量,但是对延时没有要求;
- 流式数据访问,一次写入,多次读取;
- 可运行于廉价机器;
- 需要高容错性;
2.2. 非适用场景
- 低延时访问;
- 大量小文件;
- 多方读写;
HBase
网友评论