YARN分析系列之一 -- 总览YARN组件
下图简单明了的描述了hadoop yarn 的功能是如何从 hadoop 中细化出来的。
注:图片来自 https://apprize.info/php/hadoop/9.html
Hadoop 从 v2 开始,将资源调度与监控、任务作业的管理单独从 Hadoop 中抽取出来,即 原来的 JobTracker 和TaskTracker 的功能被抽取出来。 YARN 全称为Yet Another Resource Negotiator,在于要提供一个共享的任务调度计算平台。其中将资源和作业分离开来,形成资源管理平台和应用框架,资源管理平台主要负责资源的调度和监控;应用框架主要用于负责任务或作业的管理。
从上图可以看出,YARN 不仅仅是简单地将JobTracker和TaskTracker的功能从hadoop 框架中分离出来,还将资源和任务的概念分离开来,将具体的任务和应用框架分离开来。只需要application的框架,如 mapreduce 或 spark 任务遵循 yarn的资源管理规范和任务的调度规范,任务就可以被提交到yarn上来执行。降低了模块之间的耦合性。
再来一个更加直观的来自官方文档的图来简单地说明一下 YARN的组件:
从上图可以看出,ResourceManager 和 NodeManager 组成了数据计算框架。其中ResourceManager 负责管理计算过程所需的所有的资源;NodeManager 是计算框架在每一个节点上的agent,负责container以及监控资源,并将资源使用情况汇报给 ResouceManager或 Scheduler;每个应用程序ApplicationMaster实际上是一个特定于框架的库,其任务是协调来自ResourceManager的资源,并与NodeManager一起执行和监视任务。【翻译自官方文档】
ResourceManager 包括Scheduler 和 ApplicationManager 两大组件。调度程序负责根据容量,队列等约束将资源分配给各种正在运行的应用程序。Scheduler 是纯调度程序,因为它不执行应用程序状态的监视或跟踪。 此外,由于应用程序故障或硬件故障,它无法保证重新启动失败的任务。调度程序根据应用程序的资源需求执行其调度功能; 它是基于资源Container的抽象概念,它包含内存,CPU,磁盘,网络等元素。【翻译自官方文档】
综上所述,研究YARN,不得不研究ResourceManager 和 NodeManager的服务体系。其中,研究ResourceManager就必须要研究 Scheduler 和 ApplicationManager两大组件。
注意,Container 其实是一个基于资源的一个概念,并不是某种服务。
接下来,主要研究 RM服务以及NM服务以及二者是如何通信的。
最新文章
- free查看可用缓存
- Linux常用命令_(系统设置)
- Java——银行业务调度系统
- oracle参数open_cursors和session_cached_cursor详解!
- HDU 2101 A + B Problem Too 分类: ACM 2015-06-16 23:57 18人阅读 评论(0) 收藏
- 转载: Vim 练级攻略
- C++学习笔记-1-自增和自减运算符
- linux下emacs安装
- MySQL如何记录binlog
- python核心编写视频笔记--模块的导入
- ZooKeeper之(一)ZooKeeper是什么
- 6.JAVA基础复习——JAVA中文档注释与帮助文档的生成
- [GXOI/GZOI2019]与或和
- 利用sys打印进度条
- K8S学习笔记之Kubernetes 部署策略详解
- 404错误处理以及以后缀为action结尾的处理
- Oracle的一些经典SQL面试题
- HTML5 ②
- 详解UE4静态库与动态库的导入与使用
- 数据结构与算法之排序(4)希尔排序 ——in dart