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到ASM,ASM请求资源运行起来AM;AM接管,它计算split、申请资源、与NM配合运行task、监控task等。

1、Job client向AsM提交job。

  1)获得ApplicationID

  2)将Application定义,以及所需jar包上传到hdfs指定目录(yarn-site.xml的yarn.app.mapreduce.am.staging-dir)

  3)构造资源请求对象以及Application提交上下文信息,提交给AsM

2、AsM向Scheduler请求一个供AM运行的Container,向其所在NM发送launchContainer信息,启动Container

3、AM被其所在的NM启动后向ASM注册

4、Job client从AsM处获得AM信息,并与之直接通信

5、AM计算splits并为所有map构造资源请求

6、AM做一些OutputCommitter的准备工作

7、AM向Scheduler申请资源(一组Container)然后与NM一起对Container执行一些必要的任务,例如资源本地化

8、AM监视task,如果失败重新申请Container,如果完成,运行OutputCommitter的cleanup以及commit动作

9、AM退出

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

时间: 2024-12-23 05:31:52

Hadoop学习14--Hadoop之一点点理解yarn的相关文章

hadoop学习;hadoop伪分布搭建

先前已经做了准备工作安装jdk什么的,下面开始ssh免密码登陆,这里我们用的是PieTTY工具,当然你也可以直接在linux下直接操作 ssh(secure shell),执行命令 ssh-keygen -t rsa产生密钥,位于~/.ssh文件夹中 \ 一路enter 复制为文件authorized_keys 登陆成功和退出 接下来传输jdk和hadoop文件,这里用的工具是WinScp(类似ftp上传工具),有的虚拟机可以设置直接从物理机拖拽,我这放到/root/Downloads下 然后复

Hadoop学习之Hadoop集群搭建

1.检查网络状况 Dos命令:ping ip地址,同时,在Linux下通过命令:ifconfig可以查看ip信息2.修改虚拟机的ip地址    打开linux网络连接,在桌面右上角,然后编辑ip地址,修改ip地址后,重启网络服务:service network restart,如果网络重启失败,可以在虚拟机网络设置中心删除网络连接,然后重新启动Linux,接着在网络设置中心重新设置ip地址,最后重启Linux3.修改从节点主机名    vi /etc/sysconfig/network 修改主机

Hadoop学习笔记——Hadoop经常使用命令

Hadoop下有一些经常使用的命令,通过这些命令能够非常方便操作Hadoop上的文件. 1.查看指定文件夹下的内容 语法: hadoop fs -ls 文件文件夹 2.打开某个已存在的文件 语法: hadoop fs -cat 文件地址 [ | more] []表示的是可选命令 3.将本地文件存到Hadoop 语法: hadoop fs -put 本地文件地址 Hadoop文件夹 4.将Hadoop上的文件下载到本地文件夹内 语法: hadoop fs -get Hadoop文件夹 本地文件文件

Hadoop学习<一>--hadoop安装和环境变量设置

Hadoop核心项目:HDFS(Hadoop Distributed File System分布式文件系统),MapReduce(并行计算框架) HDFS架构的主从结构:主节点,只有一个namenode,负责接收用户操作请求,维护文件系统的目录结构,管理文件与block之间关系,block与datanode之间的关系. 从节点,有很多个datanodes,负责存储文件,文件被分成block存储在磁盘上(方便管理,便于多节点读取),为保证数据安全,文件会有很多副本. MapReduce的主从结构:

hadoop学习(一)概念理解

1.概念 1.1什么是hadoop? hadoop 是大数据存储和处理的框架,主要组成为文件存储系统hdfs和分布式计算框架mapreduce. 1.2能做什么,擅长做什么,不擅长做什么? 1.2.1能做什么,如何做? hadoop 支持处理TB,PB级别的文件.举个栗子:如100M的文件,过滤出含有helloword的行,写个java pyhton程序就很快完成了,但是1T,1P的文件能做吗?就算能做,需要多长时间,需要多大硬件资源?从传统的设计来讲,在存储和计算上都存在困难.而hdfs文件系

hadoop学习(一)   hadoop伪分布式环境搭建

前期准备 1.创建hadoop相关目录(便于管理) 2.给/opt/*目录赋予hadoop用户及所有组权限 sudo chrown -R hadoop:hadoop /opt/* 3.JDK安装与配置 配置HDFS/YARN/MAMREDUCE 1.解压hadoop tar -zxf hadoop-2.5.0.tar.gz -C /opt/modules/ (删除doc下的帮助文档,节省空间) rm -rf /opt/modules/hadoop-2.5.0/share/doc/ 2.配置had

hadoop学习:《Hadoop权威指南第四版》中文PDF+英文PDF+代码

结合理论和实践,<Hadoop权威指南第四版>由浅入深,全方位介绍了Hadoop 这一高性能的海量数据处理和分析平台.5部分24 章,第Ⅰ部分介绍Hadoop 基础知识,第Ⅱ部分介绍MapReduce,第Ⅲ部分介绍Hadoop 的运维,第Ⅳ部分介绍Hadoop 相关开源项目,第Ⅴ部分提供了三个案例. Hadoop生态都有涉及,很厚很全:HDFS, MapReduce1&2(YARN), Hive, HBase, Pig, ZooKeeper, Sqoop等. 多数章节对自己的要求都是了

Hadoop学习之Hadoop案例分析

一.日志数据分析1.背景1.1 ***论坛日志,数据分为两部分组成,原来是一个大文件,是56GB:以后每天生成一个文件,大约是150-200MB之间: 每行记录有5部分组成:1.访问ip:2.访问时间:3.访问资源:4.访问状态:5.本次流量 1.2 日志格式是apache common日志格式:1.3 分析一些核心指标,供运营决策者使用: 1.3.1 浏览量PV 定义:页面浏览量即为PV(Page View),是指所有用户浏览页面的总和,一个独立用户每打开一个页面就被记录1 次.分析:网站总浏

hadoop学习笔记--hadoop读写文件过程

读取文件: 下图是HDFS读取文件的流程: 这里是详细解释: 1.当客户端开始读取一个文件时,首先客户端从NameNode取得这个文件的前几个block的DataNode信息.(步骤1,2) 2.开始调用read(),read()方法里,首先去读取第一次从NameNode取得的几个Block,当读取完成后,再去NameNode拿下一批Block的DataNode信息.(步骤3,4,5) 3.  调用Close方法完成读取.(步骤6) 当读取一个Block时如果出错了怎么办呢.客户端会去另一个最佳