版权声明:本文为博主原创文章,未经博主同意不得转载。

https://blog.csdn.net/cqboy1991/article/details/25056283

MapReduce2.0(Yarn)

MapReduce2.0是在Hadoop0.23開始採用的,叫做MapReduce2.0或者MRv2或者Yarn。

MRv2的主要思想是把jobtracker的任务分为两个基本的功能。一个是资源管理,一个是任务监控,这两个任务分别用不同的进程来执行。这个想法使拥有一个全局的资源管理器(ResourceManager)和每一个应用程序的应用程序管理器(ApplicationMaster)。一个应用程序要么使用传统的MapReduce任务来执行,要么以DAG形式的任务来执行。

ResourceManager和每一个节点(NodeManager)组成了处理数据的框架,ResourceManager是整个系统资源的终于决策者。实际上,每一个应用程序的ApplicationMaster是框架详细的Lib。它的任务是从ResourceManager出获得资源,并在NodeManager上执行和监控任务。

ResourceManager有两个基本的组件:调度器(Schedule)和应用程序管理器(ApplicationManager)。

调度器(Schedule)负责分配资源到各种各样正在执行的应用程序中。调度器不执行监控和跟踪应用程序的状态。在这个意义上说。它是纯粹的调度器。此外。它也不保证重新启动失败的任务。调度器是基于资源的请求来执行它的调度功能的,它是基于资源容器的抽象概念的,这样的资源容器包含内存、cpu、磁盘、网络等。在第一个版本号中仅仅支持内存。调度器支持可插入的策略,

ApplicationManager负责接送提交的作业,协商第一个执行该任务的容器,并提供失败作业的重新启动。

NodeManager是每一个节点的框架代理。它负责监控资源的使用情况。并报告给ResourceManager.

每一个应用的ApplicationMaster 负责与调度器谈判资源占用的containers数量。追踪状态和监控进程。

过程是:

client提交一个Application到Yarn Resource Manager,client通过ClientRMProtocol和ResourceManager通讯。首先通过getNewApplication请求,获得一个ApplicationId。之后便能够通过submitApplication提交Application。在调用submitApplication时,client须要向ResourceManager提供充足的信息,这些信息用于载入第一次执行该程序的container,the ApplicationMaster。程序须要提供的信息包含本地文件、jars包、执行时须要的命令。及Unix环境设计等。之后Yarn ResourceManager在已经分配的container中载入ApplicationMaster。

之后ApplicationMaster通过AMRMProtocol和ResourceManager通信。

首先。ApplicationMaster须要注冊到ResourceManager中,为了完毕分配给它的任务。ApplicationMaster之后便通过AMRMProtocol请求和接收containers,一旦一个container被分配给它。ApplicationMaster便和NodeManager通信,调用ContainerManager.startContainer去载入container。在载入container时,ApplicationMaster须要指定ContainerLaunchContext,ContainerLaunchContext和ApplicationSubmissionContext比較类似。它含有载入信息。当任务完毕时,ApplicationMaster通过AMRMProtocol.finishApplicationMaster通知ResourceManager。

同一时候。clientResourceManager来监控Application的状态,或者直接通过ApplicationMaster来了解程序的状态。client也能够通过ClientRMProtocol.forceKillApplication来终止程序执行。

Hadoop MapReduce2.0(Yarn)的更多相关文章

  1. Hadoop记录-MRv2(Yarn)运行机制

    1.MRv2结构—Yarn模式运行机制 Client---客户端提交任务 ResourceManager---资源管理 ---Scheduler调度器-资源分配Containers ----在Yarn ...

  2. 由“Beeline连接HiveServer2后如何使用指定的队列(Yarn)运行Hive SQL语句”引发的一系列思考

    背景   我们使用的HiveServer2的版本为0.13.1-cdh5.3.2,目前的任务使用Hive SQL构建,分为两种类型:手动任务(临时分析需求).调度任务(常规分析需求),两者均通过我们的 ...

  3. Hadoop阅读笔记(一)——强大的MapReduce

    前言:来园子已经有8个月了,当初入园凭着满腔热血和一脑门子冲动,给自己起了个响亮的旗号“大数据 小世界”,顿时有了种世界都是我的,世界都在我手中的赶脚.可是......时光飞逝,岁月如梭~~~随手一翻 ...

  4. Hadoop系列之(二):Hadoop集群部署

    1. Hadoop集群介绍 Hadoop集群部署,就是以Cluster mode方式进行部署. Hadoop的节点构成如下: HDFS daemon:  NameNode, SecondaryName ...

  5. Hadoop框架基础(五)

    ** Hadoop框架基础(五) 已经部署了Hadoop的完全分布式集群,我们知道NameNode节点的正常运行对于整个HDFS系统来说非常重要,如果NameNode宕掉了,那么整个HDFS就要整段垮 ...

  6. Hadoop 框架基础(四)

    ** Hadoop 框架基础(四) 上一节虽然大概了解了一下 mapreduce,徒手抓了海胆,不对,徒手写了 mapreduce 代码,也运行了出来.但是没有做更深入的理解和探讨. 那么…… 本节目 ...

  7. Hadoop框架基础(三)

    ** Hadoop框架基础(三) 上一节我们使用eclipse运行展示了hdfs系统中的某个文件数据,这一节我们简析一下离线计算框架MapReduce,以及通过eclipse来编写关于MapReduc ...

  8. Hadoop框架基础(一)

    ** Hadoop框架基础(一)     学习一个新的东西,传统而言呢,总喜欢漫无目的的扯来扯去,比如扯扯发展史,扯扯作者是谁,而我认为这些东西对于刚开始接触,并以开发为目的学者是没有什么帮助的,反而 ...

  9. 阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建

    准备: 两台配置CentOS 7.3的阿里云ECS服务器: hadoop-2.7.3.tar.gz安装包: jdk-8u77-linux-x64.tar.gz安装包: hostname及IP的配置: ...

随机推荐

  1. DevExpress ASP.NET Core Controls 2019发展蓝图(No.3)

    本文主要为大家介绍DevExpress ASP.NET Core Controls 2019年的官方发展蓝图,更多精彩内容欢迎持续收藏关注哦~ [DevExpress ASP.NET Controls ...

  2. CSS1 !important

    CSS1 !important 提升指定样式规则的应用优先权 ie6并不支持.还是会被后面的样式覆盖

  3. 反射 day1

    1.Object objval = rs.getObject(fieldName);//如果数据库值为空时的返回值java中的null //这个如果是oracle数值型的数据的会返回的可能类型有很多, ...

  4. vue axios上传文件实例

    <head> <title></title> <meta charset="UTF-8"> <meta name=" ...

  5. ORM-Model操作

    django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成 ...

  6. JS中的加减乘除和比较赋值

    隐式类型转换 使用Boolean(), Number(), String()去转换数据类型的方法叫显示类型转换,而与它相对的就是隐式类型转换,隐式类型转换并没有明显的标志,而是JS解释器觉得做这样一个 ...

  7. 自学python之路(day6)

    一 函数的定义与调用 现在需要一个程序来实现len()的功能. 计算字符串 s 长度 s='好好学习' #函数的定义def my_len(): i = for k in s: i += print(i ...

  8. 【转】Android-Input 键盘设备

    https://source.android.com/devices/input/keyboard-devices 键盘设备 Android 支持各种键盘设备,包括特殊功能小键盘(音量和电源控制),紧 ...

  9. flock

    为了确保操作的有效性和完整性,可以通过锁机制将并发状态转换成串行状态.作为锁机制中的一种,PHP的文件锁也是为了应对资源竞争.假设一个应用场景,在存在较大并发的情况下,通过fwrite向文件尾部多次有 ...

  10. 模拟setTimeOut

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...