专栏首页java架构师Hadoop学习14--Hadoop之一点点理解yarn

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hadoop/Spark生态圈里的新气象

    我是攻城师
  • Hadoop总结篇之二--yarn的概况

    在弄清楚yarn是什么之前,先来看一下MRv1。 它的由编程模型+数据处理引擎(map/reduceTask)+运行时环境组成(JobTracker/TaskT...

    小端
  • spark的若干问题

    问题1:SPARK与HADOOP之间的关系?   spark是一种高效处理hadoop分布式数据的处理引擎。借助hadoop的yarn框架,spark就可以运行...

    随机来个数
  • Hadoop2.2.0 的安装和基本配置

    Hadoop2.0的架构和1.0完全不一样,在安装配置上和1.0也有很大的不同,譬如配置文件的目录不一样了,还有要对yarn进行配置,这个在1.0是没有的。很多...

    小小科
  • yarn UI中appliaction展示个数分析

    客户在使用我们的EMR产品时一天大概提交2000个appliaction,但是yarn的UI界面仅仅展示出了100多个历史application信息,影响了客户...

    腾讯云ES团队
  • spark在yarn-cluster上面执行报错

    在单机模式下执行成功的spark程序,在yarn上面就报错。异常信息如下: 1 14/08/14 02:05:42 INFO DAGScheduler: Co...

    随机来个数
  • Hadoop 2.0中作业日志收集原理以及配置方法

    Hadoop 2.0提供了跟1.0类似的作业日志收集组件,从一定程度上可认为直接重用了1.0的代码模块,考虑到YARN已经变为通用资源管理平台,因此,提供一个通...

    小小科
  • webpack的watch选项不工作原因分析

    jeremyxu
  • Hadoop总结篇之一------开篇

    从今天开始新的系列:Hadoop总结篇 之前的hadoop学习篇由于是学习过程中随手记下来的一些内容,不具有系统性。所以在这个系列中,将凭着这段时间的研究心得,...

    小端

扫码关注云+社区

领取腾讯云代金券