YARN的核心组件:
1)ResourceManager,扮演Master角色(和HDFS的nameNode很像)主要用于资源分配;RM有两个子组件,分别是Scheduler(Capacity Scheduler以及Fair Scheduler)以及ApplicationManager,主要用于管理应用列表。
2)ApplicationMaster,主要用于资源的请求和已分配资源的管理;ApplicationMaster是由应用提供的,应用将会以jar的形式提交applicationMaster以及其他依赖的jar包;
3)NodeManager,扮演slave的角色(和HDFS的DataNode很像),NodeManager主要负责根据请求创建资源的封装器--contianer,业务的执行都是基于container进行的。
 

提交应用流程:

1. Client提交应用请求到YARN,请求包括CLC(Container Lanuch Context);YARN将会反馈一个applicationID,这里包括ApplicationMaster实现以及业务逻辑需要的依赖jar包,打包一起扔给了YARN,其实对于那个是applicationManager将会有字段进行说明;
2. YARN首先会尝试为应用分配资源队列(Capacity或者Fair),然后轮到了该应用处理的时候(如果是fair资源池直接就可以进行工作了),RM将会首先尝试为applicationMaster进行分配资源,拉起一个container(成为container 0),专门用于跑ApplicationMaster(AM);一旦container 0被拉起来了,应用的状态就是Accecpted,接受了applicationMaster之意;
3. 然后是在container 0里面初始AM,初始化完事后AM将会向RM注册自己,RM反馈一下当前资源情况,AM将会基于当前资源情况向YARN申请资源,通过ResourceRequest;;然后YARN将会反馈一个包含了token认证信息的一个资源清单;AM拿着这个清单,注意是AM,RM分配完资源,告诉container之后就啥也不管了;AM拿着这份资源清单以及CLC下放给NodeManager;当container都执行完了,AM会告诉RM完成;RM将会回收这些容器。在这个过程,两者还会有一些交互,比如AM会想RM通告进度;这些交互都是通过AM向RM发送心跳。
4. NodeManager将会对token进行验证,确认无假后,边从自身的资源中拉起一个container,然后把请求资源进行本地化(包括代码运行的jar包,一些公共的资源等);如果是spark,container里面运行的即使executor进程(是的,是进程);
5. container任务执行完成后,container将会被kill掉;

什么是YARN的更多相关文章

  1. 大数据之Yarn——Capacity调度器概念以及配置

    试想一下,你现在所在的公司有一个hadoop的集群.但是A项目组经常做一些定时的BI报表,B项目组则经常使用一些软件做一些临时需求.那么他们肯定会遇到同时提交任务的场景,这个时候到底如何分配资源满足这 ...

  2. [大数据之Yarn]——资源调度浅学

    在hadoop生态越来越完善的背景下,集群多用户租用的场景变得越来越普遍,多用户任务下的资源调度就显得十分关键了.比如,一个公司拥有一个几十个节点的hadoop集群,a项目组要进行一个计算任务,b项目 ...

  3. Node.js包管理器Yarn的入门介绍与安装

    FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...

  4. 03 Yarn 原理介绍

    Yarn 原理介绍 大纲: Hadoop 架构介绍 YARN 产生的背景 YARN 基础架构及原理   Hadoop的1.X架构的介绍   在1.x中的NameNodes只可能有一个,虽然可以通过Se ...

  5. Spark on YARN的部署

    Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS并且运行在yarn上,然后就可以开始部署spark on ...

  6. yarn关于app max attempt深度解析,针对长服务appmaster平滑重启

    在YARN上开发长服务,需要注意fault-tolerance,本篇文章对appmaster的平滑重启的一个参数做了解析,如何设置可以有助于达到appmaster平滑重启. 在yarn-site.xm ...

  7. Spark源码编译并在YARN上运行WordCount实例

    在学习一门新语言时,想必我们都是"Hello World"程序开始,类似地,分布式计算框架的一个典型实例就是WordCount程序,接触过Hadoop的人肯定都知道用MapRedu ...

  8. 配置Spark on YARN集群内存

    参考原文:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool 运行文件有几个G大,默 ...

  9. 【hadoop2.2(yarn)】基于yarn成功执行分布式map-reduce,记录问题解决过程。

    hadoop2.x改进了hadoop1.x的架构, 具体yarn如何工作以及改进了什么可以在网上学, 这里仅记录我个人搭建的问题和理解,希望能帮助遇到困难的朋友. 在开始前,必须了解yarn版本的ma ...

  10. Spark on Yarn 学习(一)

    最近看到明风的关于数据挖掘平台下实用Spark和Yarn来做推荐的PPT,感觉很赞,现在基于大数据和快速计算方面技术的发展很快,随着Apache基金会上发布的一个个项目,感觉真的新技术将会不断出现在大 ...

随机推荐

  1. idea Controller层编译Mapper层报错

    解决方案:ctrl+alt+s  搜索insp  设置spring的编译Error改为Warning就可以了

  2. TCP的time_wait、close_wait状态

    转载:http://huoding.com/2013/12/31/316  http://blog.csdn.net/lxnkobe/article/details/7525317  http://k ...

  3. js Worker 线程

    在平时的运行的javascript脚本都在主线程中执行,如果当前脚本包含复杂的.耗时的代码.那么JavaScript脚本的执行将会被阻塞,甚至整个刘看齐都是提示失去响应. 例子: 假设程序需要计算.收 ...

  4. Linux:paste命令详解

    paste 直接将两行贴在一起,且中间以[TAB]键隔开 语法 paste(选项)(file1 file2) 选项 -d<间隔字符>或--delimiters=<间隔字符>:用 ...

  5. Linux:数据流重定向

    1)垃圾桶黑洞 /dev/null command > /dev/null 2)stdout与stderr写入同一个文件 command > filename >& comm ...

  6. Java 7 新特性try-with-resources语句

    1.什么是try-with-resources语句 try-with-resources 语句是一个声明一个或多个资源的 try 语句.一个资源作为一个对象,必须在程序结束之后随之关闭. try-wi ...

  7. iOS开发之利用IJKPlayer+nginx+rtmp搭建直播的推流和拉流

    最近项目中想实现直播的功能,所以研究了一段时间的直播功能,当然也是在别人的基础上不断的学习实现的,所以记录一下,希望对大家有所帮助. 直播拉流功能: 这里使用了开源的IJKPlayer第三框架,ijk ...

  8. runtime查找 UIAlertAction 的key 及 UIActionSheet 设置字体颜色

    修改不了颜色了 结果发现kvo 的key 不对 哎 直接上代码 设置正确的属性找到对应的key  还以为iOS 11改变了方法 unsigned int count; Ivar *ivars =  c ...

  9. pkcs#5和pkcs#7填充的区别

    最近做到了关于加密和解密的部分. 使用算法AES的时候,涉及到数据填充的部分,数据的填充有很多种方案,用的比较多的有pkcs#5,pkcs#7, 下面的都是从网上转来的.结论就是在AES 的使用中,p ...

  10. 关于鼠标不敏感导致自以为ubuntu很怪的问题

    你要相信自己拥有的确实是一个垃圾鼠标,而不要以为复制和粘贴有感觉控制不住.