Yarn学习

Yarn的基本思想:将JobTracker的资源管理和调度监控两大职能,拆分成两个独立的进程:ResourceManager、ApplicationMaster
ResourceManager和每个节点的NodeManager组成全新的通用操作系统,以分布式的方式管理应用程序。

ResourceManager

由两个组件构成:调度器(scheduler)、应用管理器(ApplicationManager)。

1、调度器

将系统中的资源分配给各个正在运行的应用。
是一个纯粹的调度器,不负责与具体应用相关的工作,也不复杂重启失败的任务。
Container调度器根据各应用的资源需求,将内存、CPU、磁盘、网络等资源封装为一个Container,以限制任务使用的资源量。

2、应用管理器

负责管理整个系统的所有应用。启动、监控、重启ApplicationMaster。

ApplicationMaster

与ResourceManager协商资源。
与NodeManager合作,在Container中运行、监控任务。
在Container出现故障时,重新申请资源。
计算应用所需资源,转化为ResourceManager可识别的协议信息包。
ApplicationMaster故障是,应用管理器负责重启它,它自己恢复应用。

NodeManager

为应用启用调度器,以便分配Container。
确保Container不使用超出分配的资源。
为任务构建Container环境。
为所在节点提供一个管理本地存储资源的简单服务。

Resource Request

<资源名称,优先级,资源需求,Container数>

Container

本质上是一种资源分配形式,是ResourceManager为Resource Request成功分配资源的结果。
Container只有使用NodeManager指定的资源的权力,Application Master必须向NodeManager提供更多信息来启动Container。

Yarn工作流程

1、客户端提交MapReduce任务。
2、Yarn的ResourceManager协调资源分配。
3、Yarn的NodeManager负责启动和监控Container。
4、ApplicationMaster负责协调MapReduce任务,它和MapReduce任务在Container中运行,这些Container由ResourceManager分配,由NodeManager管理。
5、HDFS用来与其他实体间共享文件。

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

推荐阅读更多精彩内容