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. python报错:TypeError: 'int' object is not subscriptable

    检查一遍报错的所在行,此报错一般是在整数上加了下标: 比如:   a = 4   c=a[2] 报错:line 2, in <module>    c=a[2] TypeError: 'i ...

  2. docker下rabbitMQ高可用集群部署

    第一步:docker 安装: mac 下安装命令: brew cask install docker 安装完之后查看版本 docker --version 第二步:开始集群搭建: 采用bijukunj ...

  3. linux下鼠标穿透和取消穿透--linux小白,大神无视

    最近在用qt写一个跨平台的软件,因为设置了无边框,并且我自己给程序窗口加了阴影,阴影范围又比较大 所以必须给阴影区域加上鼠标穿透才能有更好的体验. 上网查了一下,在windows下使用SetWindo ...

  4. 【Error】 : make 不是内部或外部命令,也不是可运行的程序

    之前有段源码需要编译,一开始选择在Windows上编译,由于没有安装VS,只能采取Make + Gcc 的方式,虽然后来还是在ubuntu上编译的,但是遇到的问题还是要记录下来. 虽然我也把make的 ...

  5. 伪共享(False Sharing)和缓存行(Cache Line)

    转载:https://www.jianshu.com/p/a9b1d32403ea https://www.toutiao.com/a6644375612146319886/ 前言 在上篇介绍Long ...

  6. 暗网 tor溯源困难根因——用户的请求会在分布全球的主机随机跳转三次,最终才到达服务器,这就造成了溯源的极其困难

    Tor(The Onion Router)可以说是目前最为流行的网络匿名访问技术,用户的请求会在分布全球的主机随机跳转三次,最终才到达服务器,这就造成了溯源的极其困难,从而使得所有的访问者完全没有身份 ...

  7. 【hive】where使用注意的问题

    不能再where后边使用别名,group by后边也一样不能使用别名 select id,col1 - col2 from table1 where (col1 - col2) > 1000;  ...

  8. 【Seajs源码分析】3. 工具方法2

    util-request.js 动态加载模块 /** * util-request.js - The utilities for requesting script and style files * ...

  9. 【LeetCode 88_数组】Merge Sorted Array

    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { ; ; ; &&a ...

  10. C++11_新语法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 本节主要介绍C++的新特性,对于C++的基础语法不再讲解.由于编译器的不同.在某些地方可能有些差异,但是无太大影响. 讲解本节知识之前先确认你的C ...