Hadoop MapReduce2.0(Yarn)

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数量,追踪状态和监控进程。

过程是:

客户端提交一个Application到Yarn Resource Manager,客户端通过ClientRMProtocol和ResourceManager通讯,首先通过getNewApplication请求,获得一个ApplicationId,之后便可以通过submitApplication提交Application。在调用submitApplication时,客户端需要向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。

同时,客户端ResourceManager来监控Application的状态,或者直接通过ApplicationMaster来了解程序的状态。客户端也可以通过ClientRMProtocol.forceKillApplication来终止程序运行。

Hadoop MapReduce2.0(Yarn)

时间: 2024-07-28 17:27:04

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

Hadoop读书笔记(七)MapReduce 0.x版本API使用demo

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 Hadoop读书笔记(三)Java API操作HDFS:http://blog.csdn.net/caicongyang/article/details/41290955

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

背景 我们使用的HiveServer2的版本为0.13.1-cdh5.3.2,目前的任务使用Hive SQL构建,分为两种类型:手动任务(临时分析需求).调度任务(常规分析需求),两者均通过我们的Web系统进行提交.以前两种类型的任务都被提交至Yarn中一个名称为“hive”的队列,为了避免两种类型的任务之间相互受影响以及并行任务数过多导致“hive”队列资源紧张,我们在调度系统中构建了一个任务缓冲区队列,所有被提交的任务(手动任务.调度任务)并不会直接被提交至集群,而是提交至这个缓冲区队列中,

hadoop&spark安装(上)

硬件环境: hddcluster1 10.0.0.197 redhat7 hddcluster2 10.0.0.228 centos7  这台作为master hddcluster3 10.0.0.202 redhat7 hddcluster4 10.0.0.181 centos7 软件环境: 关闭所有防火墙firewall openssh-clients openssh-server java-1.8.0-openjdk java-1.8.0-openjdk-devel hadoop-2.7.

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

前言:来园子已经有8个月了,当初入园凭着满腔热血和一脑门子冲动,给自己起了个响亮的旗号“大数据 小世界”,顿时有了种世界都是我的,世界都在我手中的赶脚.可是......时光飞逝,岁月如梭~~~随手一翻自己的博客,可视化已经快占据了半壁江山,思来想去,还是觉得把一直挂在嘴头,放在心头的大数据拿出来说说,哦不,是拿过来学学.入园前期写了有关Nutch和Solr的自己的一些阅读体会和一些尝试,挂着大数据的旗号做着爬虫的买卖.可是,时间在流失,对于大数据的憧憬从未改变,尤其是Hadoop一直让我魂牵梦绕

用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(下)-搭建Hadoop集群

上篇:用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker 上篇介绍了快速上手Docker部分,下面接着介绍搭建Hadoop集群部分. 六.搭建Hadoop伪分布模式 我们先用前面创建的这个容器来搭建Hadoop伪分布模式做测试,测试成功后再搭建完全分布式集群. 1.SSH这个centos容器可以看做是一个非常精简的系统,很多功能没有,需要自己安装.Hadoop需要SSH,但容器没有自带,需要我们安装.①安装SSH # yum -y ins

Hadoop框架基础(五)

** Hadoop框架基础(五) 已经部署了Hadoop的完全分布式集群,我们知道NameNode节点的正常运行对于整个HDFS系统来说非常重要,如果NameNode宕掉了,那么整个HDFS就要整段垮掉了,所以人类思考,能不能让世界多一点爱:),我们能不能弄个备用的NameNode,一旦正在使用的NameNode原地爆炸了,另一台备用的NameNode能立刻代替原先NameNode的位置,继续让HDFS系统正常运行?(同理,ResourceManager也是可以的.) 世界果然充满爱,动物管理员

Hadoop 框架基础(四)

** Hadoop 框架基础(四) 上一节虽然大概了解了一下 mapreduce,徒手抓了海胆,不对,徒手写了 mapreduce 代码,也运行了出来.但是没有做更深入的理解和探讨. 那么-- 本节目标: * 深入了解 mapreduce 过程 * 成功部署 Hadoop 集群 ** mapreduce 原理 想要了解 mapreduce 原理,我们必须搞清楚处理数据时的每一个重要阶段,首先,贴上一张官方的图: 我们依次讨论每一个过程以及该过程对应的作用: 我先在这里假设一个情景,我现在有一个

阿里云ECS服务器部署HADOOP集群(五):Pig 安装

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 1 环境介绍 一台阿里云ECS服务器:master 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz Pig: pig-0.17.0.tar.gz 2 Pig 下载 下载 pig-0.17.0.tar.gz 并在合适的位置解压缩,笔者这里解压缩的路径为: /usr/local 将解压得到的目录改

阿里云ECS服务器部署HADOOP集群(四):Hive本地模式的安装

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 本地模式需要采用MySQL数据库存储数据. 1 环境介绍 一台阿里云ECS服务器:master 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz Hive:apache-hive-2.3.6-bin.tar.gz Mysql: Mysql 5.7 MySQL Connector-J:mysql-