1.什么是MRAppMaster?
我们知道,在MRv1中,JobTracker存在诸多问题,包括存在单点故障,扩展受限等,为了解决这些问题,Apache对MRv1进行了改进,提出了YARN,YARN将JobTracker中的作业控制和资源管理两个功能分开,分别由两个不同的进程处理,进而解决了原有JobTracker存在的问题。经过架构调整之后,YARN已经完全不同于MRv1,它已经变成了一个资源管理平台,或者说应用程序管理框架。运行于YARN之上的计算框架不只限于MapReduce一种,也可以是其他流行计算框架,比如流式计算、迭代式计算等类型的计算框架。为了将一个计算框架运行于YARN之上,用户需要开发一个组件—ApplicationMaster。作为一个开始,YARN首先支持的计算框架是MapReduce,YARN为用户实现好了MapReduce的ApplicationMaster,也就是本文要介绍了MRAppMaster。
2.相比于JobTracker,MRAppMaster有什么不同?
既然MRAppMaster是由JobTracker衍化而来的,那么是否将JobTracker的代码稍加修改,就变成了MRAppMaster呢,答案是否定的。事实上,YARN仅重用了MRv1中的少许代码,基本可看做重写了MRAppMaster。
YARN采用了新的软件设计思想,包括对象服务化、事件驱动的异步编程模型的。作为YARN的一部分,MRAppMaster的实现也采用了这些设计思想。
下面简要介绍一下MRAppMaster的实现细节。
在正式介绍MRAppMaster之前,我们先回顾一下MRv1的实现。我们都知道,MRv1主要由两种服务组成,即:JobTracker和TaskTracker,而在YARN中,TaskTracker已经由NodeManager代替,因此,我们在此重点分析JobTracker。JobTracker包含资源管理和作业控制两个功能,在YARN中,作业管理由ResourceManager实现,因此,只剩下作业控制这一个功能(由MRAppMaster实现)。MRv1中每个作业由一个JobInProgress控制,每个任务由一个TaskInProgress控制,由于每个任务可能有多个运行实例,因此,TaskInProgress实际管理了多个运行实例Task
Attempt,对于每个运行实例,可能运行了一个MapTask或者ReduceTask,另外,每个Map Task或者Reduce Task会通过RPC协议将状态汇报给TaskTracker,再由TaskTracker进一步汇报给JobTracker。
在MRAppMaster中,它只负责管理一个作业,包括该作业的资源申请、作业运行过程监控和作业容错等。MRAppMaster使用服务模型和事件驱动的异步编程模型对JobInProgress和TaskInProgress进行了重写(分别对应JobImpl和TaskImpl),并让Map Task和Reduce Task(Map Task和Reduce Task重用了MRv1中的代码)直接通过RPC将信息汇报给MRAppMaster。此外,为了能够运行于YARN之上,MRAppMaster还要与ResourceManager和NodeManager两个新的服务通信(用到两个新的RPC协议),以申请资源和启动任务,这些都使得MRAppMaster完全不同于JobTracker。
在接下来几篇文章中,我将重点剖析MRAppMaster的内部实现原理。
分享到:
相关推荐
YARN(MRv2)搭建
yarn-v0.23.2.tar.gz 在安装ambari,源码编译的时候下载的文件有问题 手动下载 地址 https://github.com/yarnpkg/yarn/releases/download/v0.23.2/yarn-v0.23.2.tar.gz
脚本使用:vim编辑脚本,按照自己的配置修改主机号,我的是hadoop1、2是NN;hadoop2、3是Spark Master;hadoop3还是RM;hadoop4、5、6是DN、NM、Spark Worker。编辑完成后在满足“前提”的任意一台主机运行均可。 ...
yarn-v1.22.5.tar.gz
hadoop YARN应用开发与核心源码剖析
官网直接安装的不支持vite2+vue3的 主要修复: 1.build或者dev项目时不报错,兼容vite2,vue3; 2.加入deep监听watch,直接在父组件中修改图表中的config参数即可完成图表中的数据变更。 yarn npm cnpm pnpm可通用...
yarn-workspace-plugin-since
SPARK2_ON_YARN-2.4.0 jar包下载
这将使git存储库中的.yarn/cache不存在。 它使用并重写历史记录,因此使用后果自负。 它的工作方式是先将带有--mirror标志的--mirror到临时路径中。 然后,它将计算.yarn/cache中文件的git对象ID列表,并将其删除。...
Hadoop技术内幕深入解析YARN架构设计与实现原理
Flink 2018峰会 阿里大牛的技术, 在线教程有github:**,第7个文档 详细的讲解Flink和YARN及kubenete的集成,值得收藏
storm on yarn概念架构消息机制概述 包括storm job跟mapreduce job对比 storm on yarn架构图 storm关键概念描述 storm消息机制介绍
YARN配置、启动与验证 YARN配置、启动与验证 序号 任务名称 任务一 YARN组件参数配置 任务二 MapReduce组件参数配置 任务三 配置SSH无密钥登录(slave1为主节点) 任务四 分发YARN与MapReduce配置文件 任务五 启动...
赠送jar包:hadoop-yarn-api-2.5.1.jar; 赠送原API文档:hadoop-yarn-api-2.5.1-javadoc.jar; 赠送源代码:hadoop-yarn-api-2.5.1-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-api-2.5.1.pom; 包含翻译后...
深入解析YARN架构设计与实现原理,深入解析YARN架构设计与实现原理深入解析YARN架构设计与实现原理深入解析YARN架构设计与实现原理
npm install -g yarn yarn install 安装失败,使用官方下载的yarn.lock文件
3. 开发环境:yarn/npm run dev; 生产环境: yarn/npm run prd; 三. 接口文档(token无论request或者responed均放在请求头authorization中,文档中不再体现) 1. 新增用户 接口说明:创建一个新user 接口地址:/user/...
详细介绍了Hadoop2.x的资源管理框架yarn,内容丰富,很有帮助。
优先纱线 如果项目具有yarn.lock,请将npm install更改为yarn。 命令行界面 $ npm install --global ...[2/4] :delivery_truck: Fetching packages... [3/4] :link: Linking dependencies... [4/4] :page_with_curl:
YARN框架概述与集群部署.pdf