Hadoop 2.x组成:HDFS、MapReduce、Yarn和Common。

Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。

ResourceManager(RM): 1)处理客户端请求。 2)监控 NodeManager。 3)启动或监控 ApplicationMaster。 4)资源的分配与调度。
NodeManager(NM): 1)管理单个节点上的资源。 2)处理来自 ResourceManager 的命令。 3)处理来自 ApplicationMaster 的命令。 4)资源的分配与调度。
ApplicationMaster(AM): 1)负责数据的切分。 2)为应用程序申请资源并分配给内部的任务。 3)任务的监控与容错。
Container: Container 是 Yarn 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
YARN运行过程: 1. Client 提交作业到 YARN 上; 2. Resource Manager 选择一个 Node Manager,启动一个 Container 并运行 Application Master 实例; 3. Application Master 根据实际需要向 Resource Manager 请求更多的 Container 资源(如果作业很小, 应用管理器会选择在其自己的 JVM 中运行任务); 4. Application Master 通过获取到的 Container 资源执行分布式计算。

MapReduce 将计算过程分为两个阶段:Map 阶段和 Reduce 阶段。