Apache Hadoop

Hadoop = HDFS(分布式⽂件系统) + MapReduce(分布式计算框架) + Yarn(资源协调框架) + Common模块

1. HDFS


1.1 定义

Hadoop Distribute File System 是⼀个高可靠、高吞吐的 分布式 文件系统

1.2 原理

HDFS 面向数据存储,其核心是 基于 块机制副本机制数据存储策略

  • 核心思想:分治
  • 存入原理:数据切割 --> 制作副本 --> 分散储存
  • 读取原理:获取位置 --> 分别下载 --> 数据拼接

以100T数据存储为例,利用数据切割方法,将其拆分为若干个10G大小的数据块,每个电脑节点存储一个数据块

1.3 结构

HDFS 是典型的 Master / Slave 主从节点结构

  • NameNode(NN)
    职责:存储HDFS元数据
    比如:文件名、文件目录结构、文件属性(生成时间、副本数、权限)、文件的块列表(包括块所在的DataNode)

  • SecondaryNameNode(2NN)
    NameNode的辅助程序
    职责:监控HDFS状态,周期性保存HDFS元数据快照

  • DataNode(DN)
    职责:存储块数据,校验块数据

注意:NN,2NN,DN 即是角色名称、进程名称,同时也代指电脑节点名称


2. MapReduce


2.1 定义

Hadoop MapReduce 是⼀个 分布式 离线 并行计算 框架

2.2 原理

MR 面向数据计算,其核心是 并行计算策略

  • 核心思想:分治
  • 计算原理:分解任务 --> 并行计算 --> 汇总结果

MapReduce = Map阶段 + Reduce阶段

  • Map阶段:“分” -- 并行处理输入数据
  • Reduce阶段:“合” -- 对处理结果进行汇总


3. Yarn


3.1 定义

Hadoop Yarn 是⼀个 作业调度 与 集群资源管理 框架

3.2 意义

计算结果要在所有 Reduce 任务结束后才能得出,而 Reduce 任务要在所有 Map 任务结束后才能执行
因此需要对 Map 任务 和 Reduce 任务 进行合理调度,为它们分配合理的资源,才能尽快完成计算

3.3 原理

Yarn 面向集群调度,其核心是 计算资源分配策略
同样也是典型的 Master / Slave 结构

  • ResourceManager(RM)
    身份:老板
    职责:1. 处理客户端请求 -- 接生意
         2. 启动 / 监控 ApplicationMaster -- 派出秘书(眼线)安插在各个部门,听取秘书报告
         3. 监控 NodeManager -- 听取各部门经理的报告
         2. 资源分配调度 -- 分配人力、物资

  • ApplicationMaster(AM)
    身份:秘书(老板直辖)
    职责:1. 数据切分 -- ?
         2. 为应用程序申请资源 -- 向老板汇报
         3. 将申请到的资源分配给内部任务、任务监控与容错

  • NodeManager(NM)
    身份:经理
    职责:1. 负责单个节点的资源管理 -- 管理自己的部门
         2. 处理 ResourceManager 的命令 -- 听老板的指挥
         3. 处理 ApplicationMaster 的命令 -- 听老板秘书的指挥

  • Container
    虚拟资源:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息


4. Common


Hadoop Common 是支持其他模块的工具模块(包括:Configuration、RPC、序列化机制、日志操作等)


上一篇:Hadoop 简介

下一篇:Apache Hadoop 集群搭建

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容