`
flyingdutchman
  • 浏览: 358601 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hadoop深入学习:MapReduce作业的提交流程和作业的生命周期

阅读更多
        在本节中我们主要来学习MapReduce作业的提交流程和作业的生命周期。
        一个标准的MapReduce作业的执行包括的流程是:代码编写——>作业配置——>作业提交——>Map Task的分配与执行——>处理中间结果(shuffle阶段)——>Reduce Task的分配与执行——>输出最终结果数据——>作业完成。下面是详细的作业流程:


        MapReduce作业的生命周期如下图所示:


        如上图所示,MapReduce作业的生命周期涉及5个步骤:
        1)、作业提交初始化。
             用户提交作业后,首先由JobClient对象将作业的相关信息上传到HDFS上,其中分片元信息记录了每个输入分片数据起始位置、长度和逻辑位置等信息。然后JobClient对象通过RPC通知JobTracker,而JobTracker受到新作业的提交请求后,有作业调度模块开始对作业进行初始化:为作业创建一个JobInProgress对象已跟综整个作业的运行状况,而JobInProgress则会为作业分解的每一个Task(Map Task和Reduce Task)创建一个TaskInProgress对象以跟踪每一个任务的运行状态,TaskInProgress有可能需要管理多个Task Attempt。
        2)、任务调度与监控。
             之前我们已经学过,MapReduce的任务调度和监控功能都有JobTracker完成,TaskTracker节点会周期性的通过心跳向JobTracker节点汇报本节点的状况,一旦有空闲资源出现,JobTracker就会按一定的策略选一个合适的任务使用该空闲资源,这个工作有任务调度起来完成,选择任务时需要重点考虑执行任务的数据本地性。
             JobTracker跟踪作业整个的执行过程。当某个Task的执行进度远远落后于同一类作业的其他Task时,JobTracker会执行推测式执行,在其他TaskTracker上启动一个相同的Task,并选取执行速度最快的Task结果为最终结果,并杀死较慢的Task。
        3)、任务运行时环境准备。
             为运行时环境准备包括JVM启动和支援隔离,均由TaskTracker节点实现,为每一个Task启动一个独立运行JVM以避免不同的Task在运行是相互影响。
        4)、任务执行。
             在运行时环境准备好后,TaskTracker便会启动Task,然后再整个任务运行过程中,周期性的向JobTracker发送心跳来汇报自己的状态,并接受相关命令。
        5)、作业完成。
  • 大小: 86.6 KB
  • 大小: 124.6 KB
分享到:
评论

相关推荐

    Hadoop技术内幕:深入解析MapReduce架构设计与实现原理

    MapReduce设计理念与基本架构2.1 Hadoop发展史2.1.1 Hadoop产生背景2.1.2 Apache Hadoop新版本的特性2.1.3 Hadoop版本变迁2.2 Hadoop ...MapReduce架构2.5 Hadoop MapReduce作业的生命周期2.6 小结第二部分...

    大数据-hadoop-mapreduce代码

    除此之外,可能还会有驱动程序(Driver)代码,用于配置和提交MapReduce作业。 在MapReduce中,数据通常存储在HDFS(Hadoop Distributed File System)上,而JobTracker和TaskTracker负责作业的调度和任务的执行。...

    Hadoop技术内幕:深入解析YARN架构设计与实现原理-高清文字版.pdf

    - RM还负责应用程序的生命周期管理,包括应用程序的提交、初始化、运行和终止。 2. **NodeManager**: - NM是每个节点的代理,负责本地节点的资源管理和任务执行。 - 它会周期性地向RM发送心跳,报告节点资源...

    hadoop mapreduce 例子项目,运行了单机wordcount

    通过Maven,开发者可以轻松地管理和构建Hadoop项目,因为它能自动下载所需的依赖库,并按照特定的生命周期来编译、测试和打包代码。 WordCount程序是Hadoop MapReduce的入门示例,它由两个阶段组成:Map阶段和...

    《Hadoop技术内幕深入解析YARN架构设计与实现原理》.(董西成).[PDF]@ckook

    YARN是Hadoop生态系统中的关键组件,它作为数据处理框架的资源管理器,负责调度集群资源并管理分布式应用程序的生命周期。以下是基于书中的内容和YARN相关的知识点的详细阐述: 1. **YARN的基本概念**:YARN是...

    hadoop-2.7.2-src.rar

    2. **MapReduce**:源代码在`hadoop-mapreduce-project`目录下,包含JobTracker(在YARN中已替换为ResourceManager)和TaskTracker(现在是NodeManager)的实现,以及MapReduce作业的生命周期管理。重点可以关注...

    高级软件人才培训专家-Hadoop课程资料-3-第三章 - MapReduce & YARN入门

    - **功能特性**:YARN主要负责集群资源管理和应用程序生命周期管理,可以支持多种计算框架,如MapReduce、Spark等。 #### 知识点四:YARN架构 - **组件介绍**: 1. **ResourceManager (RM)**:集群级别的资源管理...

    hadoop api 操作代码

    5. **Hadoop MapReduce的生命周期**:作业提交、初始化、分配任务、运行Map任务、Shuffle和Sort、运行Reduce任务、完成作业。每个阶段都有相应的Hadoop API参与,开发者可以通过这些API进行干预和优化。 6. **YARN...

    Hadoop.The.Definitive.Guide

    - Oozie:工作流调度系统,管理Hadoop作业的生命周期。 4. Hadoop扩展与优化: - Mahout:提供机器学习算法库,支持推荐系统、分类和聚类等任务。 - Tez和Spark:更高效的计算框架,比传统的MapReduce有更好的...

    Hadoop实战

    - MapReduce编程:编写Java MapReduce程序,理解Mapper和Reducer的生命周期,以及如何处理键值对。 - Hadoop配置优化:调整Hadoop配置参数以提高性能,如副本数量、内存分配等。 - 故障排查:识别和解决Hadoop...

    Hadoop MapReduce Cookbook

    3. **编程模型**:深入讲解MapReduce的编程模型,包括自定义Mapper和Reducer类,以及它们的生命周期方法,如setup、map、cleanup和reduce。 4. **数据类型和I/O**:讨论Hadoop中的基本数据类型,如Writable接口,...

    hadoop api 帮助文档

    - YARN集成:配置和提交MapReduce作业到YARN,管理应用程序生命周期,如监控作业状态和资源使用情况。 - 配置与优化:通过Configuration类设置Hadoop集群参数,如副本数、内存分配等,以优化性能。 4. 进阶特性:...

    Hadoop-0.20.1+API

    5. **Hadoop MapReduce编程模型**:深入理解MapReduce的生命周期,包括map阶段、shuffle阶段和reduce阶段,以及Combiner和Partitioner的作用。 6. **Hadoop数据流**:学习数据是如何从输入源经过map任务,shuffle...

    hadoop示例源码

    这个“maven_hadoop_template-master”项目可能包含了如何设置和运行Hadoop MapReduce作业的基础模板,对于初学者来说,这是一个很好的起点,可以理解Hadoop的开发流程和架构。通过学习和实践,你可以更深入地掌握...

    hadoop-2.5.0-cdh5.3.6-src.tar.gz

    源码中,`mapred`模块提供了MapReduce任务的生命周期管理,而`mapreduce`模块则实现了新的API和运行时框架。 5. HDFS架构: HDFS由NameNode和DataNode组成,NameNode负责元数据管理,DataNode则存储实际数据。源码...

    hadoop-2.6.2.tar.gz

    - **MapReduce的作业生命周期**:从提交作业到完成作业的整个过程,包括作业的初始化、拆分成任务、任务调度和执行等。 - **YARN的资源调度**:了解ResourceManager如何根据应用需求分配资源,以及NodeManager如何...

    hadoop中文版API.zip

    Hadoop中文版API是针对Apache Hadoop开源框架的中文文档,它为...通过深入学习和实践Hadoop中文版API,开发者能够更有效地开发和优化大数据处理程序,充分利用Hadoop平台的潜力,处理海量数据并实现高效的数据分析。

    hadoop-src源代码

    2. `MapReduceRuntime`:负责Map和Reduce任务的生命周期管理,包括任务的启动、监控和终止。通过源码,我们可以理解任务的分发、执行和结果收集过程。 3. `InputFormat`和`OutputFormat`:定义输入数据的格式和输出...

    Hadoop权威指南_第四版_源码代码

    6. **Hadoop源码分析**:通过阅读源码,我们可以了解Hadoop内部的实现细节,如数据块的分配策略、心跳机制、故障恢复过程以及MapReduce任务的生命周期管理等。 7. **Hadoop优化**:源码学习有助于开发者进行性能...

Global site tag (gtag.js) - Google Analytics