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。
![](http://img.blog.csdn.net/20160523210327794)
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上运行。
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上运行。
相关文章推荐
- Hadoop_2.1.0 MapReduce序列图
- 插件管理框架 for Delphi(一)
- 使用CSS框架布局的缺点和优点小结
- 一起动手编写Android图片加载框架
- 基于.NET平台常用的框架和开源程序整理
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- 轻量级javascript 框架Backbone使用指南
- javascript实现框架高度随内容改变的方法
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- 深入探讨前端框架react
- js验证框架实现代码分享
- jQuery的框架介绍
- 简单介绍不用库(框架)自己写ajax
- 利用ASP.NET MVC+EasyUI+SqlServer搭建企业开发框架
- asp.net4.0框架下验证机制失效的原因及处理办法
- 插件管理框架 for Delphi(二)
- 零基础学习AJAX之AJAX框架