Hadoop MapReduce2.0(Yarn)
版权声明:本文为博主原创文章,未经博主同意不得转载。
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)的更多相关文章
- Hadoop记录-MRv2(Yarn)运行机制
1.MRv2结构—Yarn模式运行机制 Client---客户端提交任务 ResourceManager---资源管理 ---Scheduler调度器-资源分配Containers ----在Yarn ...
- 由“Beeline连接HiveServer2后如何使用指定的队列(Yarn)运行Hive SQL语句”引发的一系列思考
背景 我们使用的HiveServer2的版本为0.13.1-cdh5.3.2,目前的任务使用Hive SQL构建,分为两种类型:手动任务(临时分析需求).调度任务(常规分析需求),两者均通过我们的 ...
- Hadoop阅读笔记(一)——强大的MapReduce
前言:来园子已经有8个月了,当初入园凭着满腔热血和一脑门子冲动,给自己起了个响亮的旗号“大数据 小世界”,顿时有了种世界都是我的,世界都在我手中的赶脚.可是......时光飞逝,岁月如梭~~~随手一翻 ...
- Hadoop系列之(二):Hadoop集群部署
1. Hadoop集群介绍 Hadoop集群部署,就是以Cluster mode方式进行部署. Hadoop的节点构成如下: HDFS daemon: NameNode, SecondaryName ...
- Hadoop框架基础(五)
** Hadoop框架基础(五) 已经部署了Hadoop的完全分布式集群,我们知道NameNode节点的正常运行对于整个HDFS系统来说非常重要,如果NameNode宕掉了,那么整个HDFS就要整段垮 ...
- Hadoop 框架基础(四)
** Hadoop 框架基础(四) 上一节虽然大概了解了一下 mapreduce,徒手抓了海胆,不对,徒手写了 mapreduce 代码,也运行了出来.但是没有做更深入的理解和探讨. 那么…… 本节目 ...
- Hadoop框架基础(三)
** Hadoop框架基础(三) 上一节我们使用eclipse运行展示了hdfs系统中的某个文件数据,这一节我们简析一下离线计算框架MapReduce,以及通过eclipse来编写关于MapReduc ...
- Hadoop框架基础(一)
** Hadoop框架基础(一) 学习一个新的东西,传统而言呢,总喜欢漫无目的的扯来扯去,比如扯扯发展史,扯扯作者是谁,而我认为这些东西对于刚开始接触,并以开发为目的学者是没有什么帮助的,反而 ...
- 阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建
准备: 两台配置CentOS 7.3的阿里云ECS服务器: hadoop-2.7.3.tar.gz安装包: jdk-8u77-linux-x64.tar.gz安装包: hostname及IP的配置: ...
随机推荐
- Ubuntu 18.04安装VNC远程登录
reference: https://blog.csdn.net/bluewhalerobot/article/details/73649353 https://community.bwbot.org ...
- pyCharm中BeautifulSoup应用
BeautifulSoup 是第三方库的工具,它包含在一个名为bs4的文件包中,需要额外安装,安装方式 非常简单,进入python的安装目录,再进入scripts子目录,找到pip程序, pip in ...
- Python Day2 Learning record
一.python初始化模块 Python的强大之处在于他有非常丰富和强大的标准库和第三方库 ...
- IP通信基础课堂笔记----第二章(重点)
TCP报文及传输 TCP报文主要学习的内容包括,报文格式.连接管理.流量控制.差错控制. TCP报文是由报文头部和数据两个部分组成.占20字节的报文头部包括源端口.位目的端口.序号..确认号.首部长度 ...
- Shell 有类型变量
1.通过 declare 和 typeset 命令 declare 和 typeset 两者等价 declare 和 typeset 都是用来定义变量类型的 下面以 declare 进行总结 2.de ...
- CentOS7的网卡重启方法
1.centos6的网卡重启方法:service network restartcentos7的网卡重启方法:systemctl restart network 2.DNS配置文件:cat /etc/ ...
- js 防抖 debounce 与 节流 throttle
debounce(防抖) 与 throttle(节流) 主要是用于用户交互处理过程中的性能优化.都是为了避免在短时间内重复触发(比如scrollTop等导致的回流.http请求等)导致的资源浪费问题. ...
- c++单链表冒泡排序(交换结点),链表增删改查,运算符重载
#include <iostream> #include <stdlib.h> #include <time.h> #include <fstream> ...
- 如何利用伪类元素和vertical-align: middle;实现元素相对于父元素居中
HTML部分 <div class="zhihu"> <div class="loginMain"> </div> < ...
- 1--Test NG--常见测试和注解
第一:注解 (1)@test (2)@BeforeMethod,@AfterMethod (3)@BeforeClass,@AfterClass (4)@BeforeSuite,@AfterSuite ...