YARN 基础
Posted wbringarden
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YARN 基础相关的知识,希望对你有一定的参考价值。
一、YARN 简介
YARN(Yet Another Resource Negotiator,资源协调者) 是一种新的Hadoop 资源管理器,是一个通用的资源管理系统,可以为上层应用提供统一的资源管理和调度。它的引入为集群在利用率,资源统一管理和数据共享方面带来了很大的好处。
YARN 是随着Hadoop 发展而催生的新框架,取代了以前Hadoop1.x 中JobTracker 的角色。之前的JobTracker不仅要负责任务的调度,还要负责任务的追踪以及失败重启等过程。为了解决JobTracker 任务过重、只能运行MapReduce作业、不支持其他编程模式的问题,YARN 作为一种解决方案就出现了。
二、YARN 架构
YARN 由Client,ResourceManager,NodeManager,ApplicationMaster组成,采用Master/Slave 结构,一个ResourceManager 对应多个NodeManager。
三、YARN 核心组件功能
ResourceManager:整个集群只有一个,负责集群资源的统一管理和调度。
处理来自客户端的请求(启动/终止 应用程序)
启动/监控 ApplicationMaster: 一个AM出故障,RM将会在另一个节点上启动该AM。
监控NodeManager,接收NodeManager 汇报的心跳信息并分配任务给NodeManager 去执行;一旦某个NM出故障,标记该NM上的任务,告诉对应的AM该如何处理。
NodeManager:整个集群中有多个,负责单节点资源管理和使用。
周期性地向RM汇报本节点上的资源的使用情况和各个Container的运行状态
接收并处理来自ResourceManager的Container 启动/停止的各种命令
处理来自ApplicationMaster 的命令
ApplicationMaster:每个应用一个,负责应用程序的管理。
数据切分
为应用程序/作业向ResourceManager 申请资源(Container),并分配给内部任务。
与NodeManager 通信以启动/停止任务。
任务监控和容错(在任务执行失败时重新为该任务申请资源以重启任务)
处理Resource 发过来的命令,终止Container,让NodeManager 重启等
Container: 对任务运行环境的抽象
任务运行资源(节点、内存、CPU)
任务启动命令
任务运行环境
任务是运行在Container 中,一个Container 中既可以运行ApplicationMaster,也可以运行具体的Map、Reduce、MPI(消息传递接口)、Spark Task。
以上是关于YARN 基础的主要内容,如果未能解决你的问题,请参考以下文章