【MR】剖析YARN中uber模式

在看《Hadoop权威指南》时,看到关于uber模式的介绍
一,什么是uber模式
Uber模式简单地可以理解成JVM重用,该模式是Hadoop2.x开始引入的;以Uber模式运行MR作业,所有的Map任务和Reduce任务将会在Application Master所在的容器(container)中运行,也就是说整个MR作业运行的过程只会启动AM container,因为不需要启动mapper containers和 reducer containers。
这是一种针对MR小作业的优化机制。即如果作业足够小,则所有任务在一个JVM中完成要比为每个任务启动一个JVM更划算。

那什么任务算是小任务?
默认情况下,小任务就是小于10个mapper且只有1个reducer,并且输入分片大小小于一个HDFS块的大小。

二,uber模式原理
Yarn的默认配置会禁用uber组件,即不允许JVM重用。
首先,Resource Manager里的Application Manager会为每一个application(比如一个用户提交的MapReduce Job)在NodeManager里面申请一个container,然后在该container里面启动一个Application Master。container在Yarn中是分配资源的容器(内存、cpu、硬盘等),它启动时便会相应启动一个JVM。此时,Application Master便陆续为application包含的每一个任务(Map t任务和Reduce任务)向Resource Manager申请一个container。等每得到一个container后,便要求该container所属的NodeManager将此container启动,然后就在这个container里面执行相应的任务。等这个任务执行完后,这个container便会被NodeManager收回,而container所拥有的JVM也相应地被退出。在这种情况下,可以看出每一个JVM仅会执行一个任务, JVM并未被重用。

当uber功能被启用时
首先,Resource Manager里的Application Manager会为每一个application在NodeManager里面申请一个container,然后在该container里面启动一个Application Master。containe启动时便会相应启动一个JVM。此时,如果uber功能被启用,并且该application被认为是一个“小的application”,那么Application Master便会将该application包含的每一个任务依次在这个container里的JVM里顺序执行,直到所有任务被执行完。这样Application Master便不用再为每一个任务向Resource Manager去申请一个单独的container,最终达到了JVM重用(资源重用)的目的。

三,uber模式配置
在yarn-site.xml文件中,改变一下几个参数的配置即可启用uber模式。
mapreduce.job.ubertask.enable;默认值false;true启用user功能。
uber的默认配置
mapreduce.job.ubertask.maxmaps 最大map数,默认值:9
mapreduce.job.ubertask.maxreduces 最大reduce数,默认值:1

【MR】剖析YARN中uber模式相关推荐

  1. 阿里中间件seata源码剖析六:TCC模式中2阶段提交实现

    目录 TM通知TC事务状态 TC通知RM分支事务提交 RM处理TC提交事务请求 总结 上篇文章中,我们以TCC模式的demo为例,讲解了seata中全局事务的开启.在这个demo中,TM作为一个全局事 ...

  2. Yarn 监控 - 监控任务运行状态 (包括Spark,MR 所有在Yarn中运行的任务)

    目录 Maven pom引用 配置文件 代码 平时开发中可以在yarn的web页面查看应用程序运行状态,如下图 下面代码实现了,代码监控Yarn运行程序,可以对部分任务进行实时监控 Maven pom ...

  3. MapReduce作业Uber模式

    大家在提交MapReduce作业的时候肯定看过如下的输出: 17/04/17 14:00:38 INFO mapreduce.Job: Running job: job_1472052053889_0 ...

  4. Hadoop2.6.0运行mapreduce之Uber模式验证

    前言 在有些情况下,运行于Hadoop集群上的一些mapreduce作业本身的数据量并不是很大,如果此时的任务分片很多,那么为每个map任务或者reduce任务频繁创建Container,势必会增加H ...

  5. 2021年大数据Spark(九):Spark On Yarn两种模式总结

    目录 Spark On Yarn两种模式 引入 一.当一个MR应用提交运行到Hadoop YARN上时 二.当一个Spark应用提交运行在集群上时 注意 client 模式 cluster 模式 总结 ...

  6. Spark on YARN cluster client 模式作业运行全过程分析

    一.Spark:Yarn-Cluster 与 Yarn-Client 的区别与联系 我们都知道Spark支持在yarn上运行,但是Spark on yarn有分为两种模式yarn-cluster和ya ...

  7. spark中local模式与cluster模式使用场景_Spark 知识点 ( 架构 RDD Task )

    1. Spark介绍 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一 ...

  8. uber模式_Uber和Lyft的商业模式可能已经死了。 好。

    uber模式 重点 (Top highlight) Uber is less a business than a constellation of fantasies. The same goes f ...

  9. 源码 状态机_阿里中间件seata源码剖析七:saga模式实现

    saga模式是分布式事务中使用比较多的一种模式,他主要应用在长流程的服务,对一个全局事务,如果某个节点抛出了异常,则从这个节点往前依次回滚或补偿事务.今天我们就来看看它的源码实现. 状态机初始化 在之 ...

最新文章

  1. c语言选择题库和解系,OC单个对象归档和解档关键类和方法名
  2. 【项目经理应该知道的97件事】三位一体的项目管理
  3. SQL点滴12—SQL Server备份还原数据库中的小把戏
  4. 从网上找到一个清晰CSS视频教程和大家分享一下
  5. 作研究需要的绣花功夫
  6. 展示面-网络安全相关学习总结
  7. TCP/IP和HTTP的不同之处
  8. aes加密php源码,AES加解密类源码 · ThinkPHP5高阶实战教程 --诠释为API开发而生 · 看云...
  9. 爬虫入门(五):下载豆瓣电影信息
  10. 4月编程排行榜出啦~速看新变化~
  11. 【SPSS】重复测量设计方差分析-单因素
  12. 跟进分析不一样的MTI商城
  13. 运放失真罪魁祸首之压摆率和增益带宽积
  14. 服务器过载或维修,服务器过载怎么解决
  15. 常量的分类_基本数据类型
  16. windows下制作linux U盘启动盘或者安装优盘(转)
  17. 我爱大自然教案计算机,我们热爱大自然教案.doc
  18. SQL中将查询结果赋值给变量
  19. 新手使用Docker教程
  20. liunx下调整CPU参数获得高性能

热门文章

  1. DWG 是什么文件格式?如何打开?
  2. Bigemap添加自定义地图,第三方地图
  3. python实现txt文本数据分类——中英文分类
  4. java 二叉树第n层节点数及层序遍历
  5. Revit二次开发-自动线性尺寸标注
  6. Android的界面设计规范
  7. Delphi快速开发本机跨平台Google Maps谷歌地理信息系统GIS解决方案
  8. 清除缓存-Clearing Cache
  9. 网络视频会议开发之如何进行噪音消除
  10. 关于AD导出PDF文件出现问题汇总