Hadoop - MapReduce MRAppMaster-剖析
而YARN出现之后。资源管理模块则交由YARN实现,这样为了让MapReduce框架执行在YARN上。仅须要一个ApplicationMaster组件完毕作业控制模块功能就可以,其他部分,包含编程模型和数据处理引擎等,可直接採用MRv1原有的部分。
作业的每一个任务资源需求可描写叙述为5元组:
它维护了一个作业的状态机,以实现异步执行各种作业相关的操作。
当MRApMaster出现问题时。YARN会将其又一次调度到还有一个节点上。
未了避免又一次计算。MRAppMaster首先从HDFS上读取上次执行产生的日志,以恢复已经完毕的任务,进而可以仅仅执行尚未执行完毕的任务。
在YARN中。NodeManager作为一种组合服务模式。同意动态载入应用程序暂时须要的附属服务,利用这一特性,YARN将Shuffle HTTP Sever组成一种服务,以便让各个NodeManager启动时载入它。
ApplicationMaster获取到资源后,与相应的NodeManager通信以启动任务。
步骤3 ApplicationMaster首先向ResourceManager注冊。这样用户能够直接通过ResourceManage查看应用程序的执行状态,然后它将为各个任务申请资源。并监控它们的执行状态。直到执行结束,即反复步骤4~7。
步骤4 ApplicationMaster採用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
步骤5 一旦ApplicationMaster申请到资源后,ApplicationMaster就会将启动命令交给NodeManager,要求它启动任务。启动命令里包括了一些信息使得Container能够与Application Master进行通信。
步骤6 NodeManager为任务设置好执行环境(包含环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过执行该脚本启动任务(Container)。
步骤7 在Container内执行用户提交的代码,各个Container通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的执行状态,从而能够在任务失败时又一次启动任务。
步骤8 在应用程序执行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前执行状态。
步骤9 应用程序执行完毕后。ApplicationMaster向ResourceManager注销并关闭自己
Task可能顺次启动多个执行实例,比方第一个执行实例失败了,则另起一个新的实例又一次计算,直到这一份数据处理完毕或者尝试次数达到上限。
一个任务可能存在多次执行尝试。每次执行尝试被称为一个“执行实例”,Task状态机负责管理这些执行实例。Task状态机由TaskImpl实现。
须要注意的是,在某一个时刻,一个任务可能有多个执行实例,且可能存在执行失败的实例。可是仅仅要有一个实例执行成功,则意味着该任务执行完毕。
各个任务执行实例需定期向MRAppMaster汇报进度和状态,否则MRAppMaster觉得该任务处于僵死状态。会将它杀死,每次汇报均会触发一个TA_UPDATE事件。
用户提交的作业被分解成Map Task和Reduce Task后,这些Task所需的资源统一由ContainerAllocator模块负责从ResourceManager中申请,而一旦ContainAllocator得到资源后,需採用一定的策略进一步分配给作业的各个任务。
比如:
Task和 Reduce Task。
正由于如此。MRv1的程序与YARN中的MapReduce程序全然兼容。
当前MRAppMaster採用了任务级别的恢复机制,即以任务为基本单位进行恢复,这样的机制是基于事务型日志完毕作业恢复的,它仅仅关注两种任务:执行完毕的任务和未完毕的任务。作业执行过程中,MRAppMaster会以日志的形式将作业以及状态记录下来,一旦MRAppMaster重新启动,则可从日志中恢复作业的执行状态。
Avro是一个数据序列化系统,通经常使用于支持大批数据交换和跨语言RPC的应用。
因此。在最简单的情况下。现有的MapReduce应用仍然能照原样执行(须要又一次编译),YARN仅仅只是能让开发者更精
确地指定运行參数。
MapRecuce On YARN的执行时环境由YARN与ApplicationMaster构成,这样的新颖的执行时环境使得MapReduce能够与其它计算框架执行在一个集群中,从而达到共享集群资源、提高资源利用率的目的。
随着YARN的程序与完好,MRv1的独立执行模式将被MapRedcue
On YARN代替。
Hadoop - MapReduce MRAppMaster-剖析的更多相关文章
- Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
自己搭建了一套伪分布的大数据环境,运行Hadoop包中自带的示例时,出现如下错误: 错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMas ...
- 关于hadoop3.x MR报错:找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
用的apache Hadoop3.X,今天运行MR报错: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster 关键需要配置两个配置:ma ...
- Hive进行数据统计时报错:org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster
报错详情: 2020-04-09 22:56:58,827 ERROR [Listener at 0.0.0.0/45871] org.apache.hadoop.mapreduce.v2.app.M ...
- Yarn 踩坑 : Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
原因:yarn-site.xml 中,yarn.application.classpath 未配置 解决:其中 hadoop 版本对应更改 <property> <name>y ...
- hadoop3.1.1:找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
yarn执行MapReduce任务时,找不到主类导致的 解决: 1.在命令行输入:hadoop classpath [hadoop@localhost ~]$ hadoop classpath /da ...
- Hadoop MapReduce 一文详解MapReduce及工作机制
@ 目录 前言-MR概述 1.Hadoop MapReduce设计思想及优缺点 设计思想 优点: 缺点: 2. Hadoop MapReduce核心思想 3.MapReduce工作机制 剖析MapRe ...
- hadoop MapReduce Yarn运行机制
原 Hadoop MapReduce 框架的问题 原hadoop的MapReduce框架图 从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路: 首先用户程序 (JobClient) ...
- hadoop MapReduce
简单介绍 官方给出的介绍是hadoop MR是一个用于轻松编写以一种可靠的.容错的方式在商业化硬件上的大型集群上并行处理大量数据的应用程序的软件框架. MR任务通常会先把输入的数据集切分成独立的块(可 ...
- Hadoop MapReduce执行过程详解(带hadoop例子)
https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...
- Hadoop Mapreduce分区、分组、二次排序过程详解[转]
原文地址:Hadoop Mapreduce分区.分组.二次排序过程详解[转]作者: 徐海蛟 教学用途 1.MapReduce中数据流动 (1)最简单的过程: map - reduce (2) ...
随机推荐
- 【百度之星】-IP聚合
问题描述: Problem Description 当今世界,网络已经无处不在了,小度熊由于犯了错误,当上了度度公司的网络管理员,他手上有大量的 IP列表,小度熊想知道在某个固定的子网掩码下,有多少个 ...
- System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) .
今天使用sql server 2008 R2管理器,进行SQL查询时,频率非常高的报错: System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误. ...
- es6杂记
es6杂记 let 和 const let 仅在代码块里有效 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b / ...
- ionic2/3 禁止屏幕旋转,禁止横屏,竖屏
ionic2/ionic3禁止屏幕旋转,及解除禁止旋转 1.添加插件: cmd到项目目录---> cordova plugin add cordova-plugin-screen-orienta ...
- Ajax——异步基础知识(二)
XML数据格式 首行必须是版本号和格式等信息 <?xml version="1.0" encoding="utf-8" ?> 最外层需要一个根节点进 ...
- [Windows Server 2008] 服务器安全加固
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:服务器安全加固 ...
- [Windows Server 2012] 安装Apache+PHP+MySQL
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:Win2012 ...
- Twisted web开发教程
最近在网上看到一篇twisted web开发文章,将它实践了一下,twisted 提供基本的url路由 和 控制器,模板与模型需要外部扩展 1.目录浏览 2.get请求 3.url路由 4.接受带参数 ...
- DOCKER - 容器抓包
https://help.aliyun.com/knowledge_detail/40564.html?spm=a2c4e.11153940.blogcont272172.10.b09e28a6AOd ...
- php第十二节课
练习 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...