您的位置:首页 > 运维架构 > 网站架构

yarn的基本架构

2016-05-23 21:08 246 查看
yarn的基本设计思想是将资源管理和job的调度和监控功能拆分成两个单独的守护进程。具体实现是有一个全球的ResourceManager(RM)和每个应用程序有一个ApplicationMaster(AM)。应用程序可以是单个job或DAG jobs。

ResourceManager和与NodeManager组成整个数据计算框架。ResourceManager是系统中掌控所有应用的资源分配的最终决策者,NodeManager是每台机器上的框架代理,它负责监测containers的资源使用情况(CPU,内存,磁盘,网络),并向ResourceManager和Scheduler汇报。

每个应用程序ApplicationMaster实际上是一个特定的框架库(a framework specific library ),其任务是:

1)与ResourceManager协商并获得资源

2))和NodeManager(S)合作,执行和监控tasks。



ResourceManager由两个组件构成:调度器Scheduler 和 应用管理器ApplicationsManager.

调度器根据容量,队列等之间的密切约束,将系统中的资源分配给各个正在运行的应用。这里的调度器仅负责资源的调度,它不再负责监控或者跟踪应用的执行状态,有些task因为应用程序或者硬件错误而失败时,他也不再为task的重启提供授权。调度器基于各个应用的资源需求进行调度,这种调度基于resource Container的抽象概念,resource Container将内存,CPU,磁盘,网络等资源封装在一起。

调度器具有可插拔策略,主要负责将集群中得资源分配给多个队列和应用。yarn当前有多个资源调度器,比如Capacity Scheduler和Fair Scheduler等,他们都以插件的形式运行。

ApplicationsManager负责接受作业提交,协商并获取第一个container用于执行这个应用程序的ApplicationMaster 和提供重启失败的ApplicationMaster container的服务。每一个应用程序的ApplicationMaster 的任务有:

1)和调度器协商并获得合适数量的resource Containers

2)跟踪containers的状态和监控进展情况

hadoop-2.x版本的mapreduce仍然保持着与以前的稳定版本(Hadoop-1.x)的API的兼容性。这意味着以前的mapreduce jobs只需要重新编译一下就可以再yarn上运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  yarn mapreduce 框架