在本节中我们主要来学习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
分享到:
相关推荐
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 小结第二部分...
除此之外,可能还会有驱动程序(Driver)代码,用于配置和提交MapReduce作业。 在MapReduce中,数据通常存储在HDFS(Hadoop Distributed File System)上,而JobTracker和TaskTracker负责作业的调度和任务的执行。...
- RM还负责应用程序的生命周期管理,包括应用程序的提交、初始化、运行和终止。 2. **NodeManager**: - NM是每个节点的代理,负责本地节点的资源管理和任务执行。 - 它会周期性地向RM发送心跳,报告节点资源...
通过Maven,开发者可以轻松地管理和构建Hadoop项目,因为它能自动下载所需的依赖库,并按照特定的生命周期来编译、测试和打包代码。 WordCount程序是Hadoop MapReduce的入门示例,它由两个阶段组成:Map阶段和...
YARN是Hadoop生态系统中的关键组件,它作为数据处理框架的资源管理器,负责调度集群资源并管理分布式应用程序的生命周期。以下是基于书中的内容和YARN相关的知识点的详细阐述: 1. **YARN的基本概念**:YARN是...
2. **MapReduce**:源代码在`hadoop-mapreduce-project`目录下,包含JobTracker(在YARN中已替换为ResourceManager)和TaskTracker(现在是NodeManager)的实现,以及MapReduce作业的生命周期管理。重点可以关注...
- **功能特性**:YARN主要负责集群资源管理和应用程序生命周期管理,可以支持多种计算框架,如MapReduce、Spark等。 #### 知识点四:YARN架构 - **组件介绍**: 1. **ResourceManager (RM)**:集群级别的资源管理...
5. **Hadoop MapReduce的生命周期**:作业提交、初始化、分配任务、运行Map任务、Shuffle和Sort、运行Reduce任务、完成作业。每个阶段都有相应的Hadoop API参与,开发者可以通过这些API进行干预和优化。 6. **YARN...
- Oozie:工作流调度系统,管理Hadoop作业的生命周期。 4. Hadoop扩展与优化: - Mahout:提供机器学习算法库,支持推荐系统、分类和聚类等任务。 - Tez和Spark:更高效的计算框架,比传统的MapReduce有更好的...
- MapReduce编程:编写Java MapReduce程序,理解Mapper和Reducer的生命周期,以及如何处理键值对。 - Hadoop配置优化:调整Hadoop配置参数以提高性能,如副本数量、内存分配等。 - 故障排查:识别和解决Hadoop...
3. **编程模型**:深入讲解MapReduce的编程模型,包括自定义Mapper和Reducer类,以及它们的生命周期方法,如setup、map、cleanup和reduce。 4. **数据类型和I/O**:讨论Hadoop中的基本数据类型,如Writable接口,...
- YARN集成:配置和提交MapReduce作业到YARN,管理应用程序生命周期,如监控作业状态和资源使用情况。 - 配置与优化:通过Configuration类设置Hadoop集群参数,如副本数、内存分配等,以优化性能。 4. 进阶特性:...
5. **Hadoop MapReduce编程模型**:深入理解MapReduce的生命周期,包括map阶段、shuffle阶段和reduce阶段,以及Combiner和Partitioner的作用。 6. **Hadoop数据流**:学习数据是如何从输入源经过map任务,shuffle...
这个“maven_hadoop_template-master”项目可能包含了如何设置和运行Hadoop MapReduce作业的基础模板,对于初学者来说,这是一个很好的起点,可以理解Hadoop的开发流程和架构。通过学习和实践,你可以更深入地掌握...
源码中,`mapred`模块提供了MapReduce任务的生命周期管理,而`mapreduce`模块则实现了新的API和运行时框架。 5. HDFS架构: HDFS由NameNode和DataNode组成,NameNode负责元数据管理,DataNode则存储实际数据。源码...
- **MapReduce的作业生命周期**:从提交作业到完成作业的整个过程,包括作业的初始化、拆分成任务、任务调度和执行等。 - **YARN的资源调度**:了解ResourceManager如何根据应用需求分配资源,以及NodeManager如何...
Hadoop中文版API是针对Apache Hadoop开源框架的中文文档,它为...通过深入学习和实践Hadoop中文版API,开发者能够更有效地开发和优化大数据处理程序,充分利用Hadoop平台的潜力,处理海量数据并实现高效的数据分析。
2. `MapReduceRuntime`:负责Map和Reduce任务的生命周期管理,包括任务的启动、监控和终止。通过源码,我们可以理解任务的分发、执行和结果收集过程。 3. `InputFormat`和`OutputFormat`:定义输入数据的格式和输出...
6. **Hadoop源码分析**:通过阅读源码,我们可以了解Hadoop内部的实现细节,如数据块的分配策略、心跳机制、故障恢复过程以及MapReduce任务的生命周期管理等。 7. **Hadoop优化**:源码学习有助于开发者进行性能...