YARN

http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html

Apache Hadoop YARN

YARN的主要功能包括:资源管理和任务调度及监控,它们各自都是独立的守护进程。要实现这个目标,必须有一个全局的资源管理器和每个应用都有一个ApplicationMaster(AM)。应用可以是单个job,也可以是DAG jobs。

ResourceManager和NodeManager组成数据计算框架。ResourceManager对系统中所有应用的资源拥有最终仲裁权。NodeManager对容器负责,监控它们的资源使用情况,并且将其报告给ResourceManager。

每个应用都有一个ApplicationMaster,它负责向ResourceManager申请资源,并且和NodeManager一起指向和监控任务。

在这幅图中,有两个客户端都提交了任务,可以看到NodeManager向ResourceManager报告,ApplicationMaster向Resource申请资源并且监控任务执行。

 

ResourceManager有两个主要的组件:Scheduler和ApplicationManager

Scheduler负责分配资源

ApplicationManager负责接受提交的任务,并且分配第一个container为了执行特定的ApplicationMaster。每个应用的ApplicationMaster负责向Scheduler申请适量的资源,并且跟踪资源的状态和监控进度。

 

总结一下:

1、ResourceManager包括Scheduler和ApplicationManager

2、ResourceManager负责集群中所有应用的资源分配(资源包括内存、CPU、磁盘、网络等等)

3、Scheduler只是一个单纯的调度器,负责给不同的应用分配资源

4、每个应用都有一个ApplicationMaster,它负责向ResourceManager申请资源,并且跟踪资源的使用情况还有任务的执行情况

5、NodeManager负责运行并且管理本节点的容器(资源)。AppMaster指定容器来运行任务。(也就是说任务是在容器中运行的)

 

所以,任务的执行是这样的:

1、客户端提交任务到ResourceManager

2、ApplicationManager接收任务,并且指定一个NodeManager给它分配第一个资源(container)用户执行ApplicationMaster

3、NodeManager启动一个ApplicationMaster

4、AppicationMaster向ResourceManager申请资源(PS:其实是向Scheduler申请),并且监控资源的使用情况,监控任务的执行进度

5、任务开始执行

 

总的来说,AppMaster负责协调并监控资源,NodeManager负责管理本地资源,启动/停止任务

 

参考

http://blog.csdn.net/liuwenbo0920/article/details/43304243

http://blog.csdn.net/paicMis/article/details/53890676

https://www.cnblogs.com/chushiyaoyue/p/5784871.html

 



欢迎各位转载,但必须在文章页面中给出作者和原文链接!
posted @   废物大师兄  阅读(896)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示