Hadoop学习14--Hadoop之一点点理解yarn
yarn是一个分布式的资源管理系统。
它诞生的原因是原来的MapReduce框架的一些不足:
1、JobTracker单点故障隐患
2、JobTracker承担的任务太多,维护Job状态,Job的task的状态等
3、在taskTracker端,使用map/reduce task表示资源过于简单,没有考虑cpu、内存等使用情况。当把多个需要消耗大量内存的task调度到一起时,很容易出现问题
演化后的基本组件

下面具体解释:
yarn是一个资源管理的框架,而非计算的框架,理解这点很重要。
图中的Application相当于1.x版本中的map/reduce job。
图中的Container是一个逻辑概念,是一组资源(内存、cpu等)的统称。
AM:每一个Application对应一个AM。
ResourceManager:主要来做资源的协调者。有两个重要的组件:
Scheduler:【资源调度】从所有运行着的Application收到资源请求后,构建一个全局的分配计划。然后根据Application特殊的限制以及全局的一些限制条件分配资源。【资源监视】周期性的接受来自NM的资源使用率监控信息。注意这和job的执行情况无关,只是监视资源。另外可以为AM提供其已完成的container的状态信息。
Asm:接收资源请求,向Scheduler申请一个Container提供给AM,并启动AM。向client提供AM运行状态。总结一句话,就是用来管理所有AM的生命周期。
yarn工作流程:
总结的说就是两步:client提交Job到AM,AM请求资源运行起来ASM;ASM接管,它计算split、申请资源、与NM配合运行task、监控task等。
1、Job client向AM提交job。
1)获得ApplicationID
2)将Application定义,以及所需jar包上传到hdfs指定目录(yarn-site.xml的yarn.app.mapreduce.am.staging-dir)
3)构造资源请求对象以及Application提交上下文信息,提交给AM
2、AM向Scheduler请求一个供ASM运行的Container,向其所在NM发送launchContainer信息,启动Container
3、AM于NM协调,启动ASM,并监控之
4、Job client从AM处获得ASM信息,并与之直接通信
5、ASM计算splits并为所有map构造资源请求
6、ASM做一些OutputCommitter的准备工作
7、ASM向Scheduler申请资源(一组Container)然后与NM一起对Container执行一些必要的任务,例如资源本地化
8、ASM监视task,如果失败重新申请Container,如果完成,运行OutputCommitter的cleanup以及commit动作
9、ASM退出
client想知道监控信息的途径:
task的从AM获取
AM的从AsM获取
NM还有一项工作,监控task所使用的资源,如果超出所申请的Container范围,则kill掉其任务进程
yarn是资源框架,计算框架运行于资源框架之上。map-reduce是计算模型,它实现了特定的ApplicationMaster,才得以在yarn上运行。如果是其他的计算模型,还需要实现特定的ApplicationMaster,才能在yarn上运行。
引申阅读:http://www.aboutyun.com/thread-7678-1-3.html
Hadoop学习14--Hadoop之一点点理解yarn的更多相关文章
- Hadoop学习之Hadoop集群搭建
1.检查网络状况 Dos命令:ping ip地址,同时,在Linux下通过命令:ifconfig可以查看ip信息2.修改虚拟机的ip地址 打开linux网络连接,在桌面右上角,然后编辑ip地址, ...
- hadoop学习;hadoop伪分布搭建
先前已经做了准备工作安装jdk什么的,以下開始ssh免password登陆.这里我们用的是PieTTY工具,当然你也能够直接在linux下直接操作 ssh(secure shell),运行命令 ssh ...
- Hadoop学习笔记——Hadoop经常使用命令
Hadoop下有一些经常使用的命令,通过这些命令能够非常方便操作Hadoop上的文件. 1.查看指定文件夹下的内容 语法: hadoop fs -ls 文件文件夹 2.打开某个已存在的文件 语法: h ...
- 二十六、Hadoop学习笔记————Hadoop Yarn的简介复习
1. 介绍 YARN(Yet Another Resource Negotiator)是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度. 之前有提到过,Yarn主要是为了减轻Hadoop ...
- Hadoop学习笔记(四):Yarn和MapReduce
1. 先关闭掉所有的防火墙(master和所有slave) 2. 配置yarn-site.xml文件(配置所有机器,此时没有启动hadoop服务) 3. 启Yarn,输入要命令start-yarn.s ...
- hadoop学习(一)概念理解
1.概念 1.1什么是hadoop? hadoop 是大数据存储和处理的框架,主要组成为文件存储系统hdfs和分布式计算框架mapreduce. 1.2能做什么,擅长做什么,不擅长做什么? 1.2.1 ...
- Hadoop学习(3)-mapreduce快速入门加yarn的安装
mapreduce是一个运算框架,让多台机器进行并行进行运算, 他把所有的计算都分为两个阶段,一个是map阶段,一个是reduce阶段 map阶段:读取hdfs中的文件,分给多个机器上的maptask ...
- Hadoop学习笔记(老版本,YARN之前),MapReduce任务Namenode DataNode Jobtracker Tasktracker之间的关系
一.基本概念 在MapReduce中,一个准备提交执行的应用程序称为“作业(job)”,而从一个作业划分出的运行于各个计算节点的工作单元称为“任务(task)”.此外,Hadoop提供的分布式文件系统 ...
- hadoop学习之hadoop完全分布式集群安装
注:本文的主要目的是为了记录自己的学习过程,也方便与大家做交流.转载请注明来自: http://blog.csdn.net/ab198604/article/details/8250461 要想深入的 ...
随机推荐
- 基于双向链表的增删改查和排序(C++实现)
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点.一般我们都构造双向循环链表 ...
- Hadoop技术内幕-第一章 阅读原代码前的准备
1.1 源代码学习环境 1.1.1 基础软件的下载 JDK-http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads ...
- C#获取参数getParameter
昨天遇到了这样一个问题,getParameter时,首次进入页面读取默认值时,本应该读取到“全部”这个字符. 然后在实际读取过程当中却不是这样,实际读取到的是 类的对象值 重新运行时能够读取到 “全 ...
- Microsoft Enterprise Library 5.0 缓存配置
在使用企业库的缓存时遇到一个问题. 创建 cachingConfiguration 的配置节处理程序时出错: 未能加载文件或程序集“Microsoft.Practices.EnterpriseLibr ...
- cocos2d-x 中的坐标系
cocos2d-x 中的坐标系是笛卡尔坐标系,向右为 x 轴正方向,向上为 y 轴正方向,以像素为单位 原点在屏幕左下角的坐标系叫世界坐标系,是整个游戏中的根基,直接添加到场景中的节点,设置的位置都是 ...
- MagicalRecord的使用(第三方库实现的数据库)
MagicalRecord:http://cocoadocs.org/docsets/MagicalRecord/2.1/ 安装: 1.新建一个工程,注意不要勾选 Core Data. 2.利用Coc ...
- sql数据库 管理处理问题--维护计划
问题:SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 MYPC/Administrator' 的信息,错误代码 0x534. [SQLSTATE 42000] ( ...
- web前端基础篇②
1.要默认选择在radio或checkbox后加checked 2.想实现单选在radio后加上name 两个命名一样即可出现排斥 3.自动聚焦 autofocus readonly只读 4.plac ...
- (转)android平台phonegap框架实现原理
(原文)http://blog.csdn.net/wuruixn/article/details/7405175 android平台phonegap框架实现原理 分类: Android2012-03- ...
- Python学习路程day2
import sys #接收执行参数 #!/usr/bin/env python import sys print (sys.argv) 例: >>>python ind ...