MapReduce工作流程(Job与Shuffle)总结

本文详细介绍了MapReduce的工作流程,包括作业执行的提交、初始化、任务分配和执行,重点解析了Uber模式和Shuffle过程。在Shuffle阶段,讲解了Map端和Reduce端的详细步骤,以及Shuffle对于数据排序和归并的重要性。此外,还探讨了MapReduce的整体流程,如切片、环形缓存区、溢出和合并,以及如何通过配置YARN的Uber模式优化小作业的执行效率。
摘要由CSDN通过智能技术生成

觉得有帮助的,请多多支持博主,点赞关注哦~

MapReduce 工作流程

1、MapReduce作业执行流程

在这里插入图片描述

1.1、提交作业

客户端向ResourceManager提交作业。首先,用户需要将所有应该配置的参数根据需求配置好。作业提交之后,就会进入自动化执行。在这个过程中,用户只能监控程序的执行情况和强制中断作业,但是不能对作业的执行过程进行任何干预。

提交作业的基本过程如下:

  1. 客户端通过Runjob()方法启动作业提交。
  2. 客户端通过ResourceManager的getNewJobId()请求一个新的作业ID。
  3. 客户端检查作业的输出说明,计算作业的输入分片等,如果有问题,就抛出异常,如果正常,就将运行作业所需的资源(如作业Jar文件,配置文件,计算所得的输入分片等)复制到一个以作业ID命名的目录中。
  4. 通过调用ResourceManager的submitApplication()方法告知作业准备执行。

1.2、初始化作业

​ 在ResourceManager端开始初始化工作,包括在其内存里建立一系列数据结构,来记录这个Job的运行情况。
​ ResourceManager 接收到对其 submitApplication()方法的调用后,就会把这个调用放入一个内部队列中,交由作业调度器(scheduler)进行调度。初始化主要是创建一个表示正在运行作业的对象,以便跟踪任务的状态和进程。

  1. 调度器(Scheduler)分配一个容器(步骤5.a),然后资源管理器(ResourceManager)在节点管理器(NodeManager)的管理下在容器中启动应用程序的master进程(步骤5b)
  2. 应用程序管理器MRAppMaster对作业进行初始化:
    通过创建多个簿记对象以保持对作业进度的跟踪,因为它将接受来自任务的进度和完成报告。
  3. MRAppMaster接来自共享文件系统的在客户端计算的输入分片。
    它对每一个分片创建一个map任务对象以及由mapreduce.job.reduces属性确定的多个reduce任务对象。
备注:
MRAppMaster决定如何运行构成MapReduce作业的各个任务。如果作业很小:
配置了Yarn的uber mode(可用true):就选择在与它同一个JVM上运行任务
配置了Yarn的Uber mode(不可用false):
1.2.1、什么是小任务

【默认情况下】
小任务就是<10个mapper并且只有1个reducer并且输入大小小于一个HDFS块的任务。
【如何修改参数】

通过设置mapreduce.job.ubertask.maxmaps(默认值:9)
mapreduce.job.ubertask.maxreduces(默认值:1)
mapreduce.job.ubertask.maxbytes可以改变一个作业的上述值。

将mapreduce.job.ubertask.enable设置为false也可以完全使uber任务不可用

1.2.2、什么是Uber模式

uber mode可以理解成]VM重用,是对小作业进行优化,不会给每个任务分别分配Contianer资源,这些小任务将统一在一个container中按照先执行map任务后执行reduce任务的顺序串执行。

该模式是Hadoop2.x开始引入的;以Uber模式运行MR作业,所有的Map任务和Reduce任务将会在Application Master所在的容器(container)中运行,也就是说整个MR作业运行的过程只会启动AM container,因为不需要启动

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值