`
cloudeagle_bupt
  • 浏览: 536501 次
文章分类
社区版块
存档分类
最新评论

Hadoop的作业提交过程

 
阅读更多
1.JobClient调用FileInputFormat.getSplits(),如果数据文件是isSplitable()的话,会将大的文件分解成小的FileSplit,记录文件
在HDFS里的路径及偏移量和Split大小。这些信息会统一打包到jobFile的jar中。
2.JobClient然后使用submitJob(job)方法向master提交作业。submitJob(job)内部是通过submitJobInternal(job)方法完成实质性的作业提交。 submitJobInternal(job)方法首先会向hadoop分布系统文件系统hdfs依次上传三个文件: job.jar, job.split和job.xml。
job.xml: 作业配置,例如Mapper,Combiner, Reducer的类型,输入输出格式的类型等。
job.jar: jar包,里面包含了执行此任务需要的各种类,比如 Mapper,Reducer等实现。
job.split: 文件分块的相关信息,比如有数据分多少个块,块的大小(默认64m)等。
这三个文件在hdfs上的路径由hadoop-default.xml文件中的mapreduce系统路径mapred.system.dir属性+jobid决定。mapred.system.dir属性默认是/tmp/hadoop-user_name/mapred/system。写完这三个文件之后,此方法会通过RPC调用master节点上的JobTracker.submitJob(job)方法,此时作业已经提交完成。

3.JobTracker会根据从HDFS获取的Job的Split信息(job.split,job.splitMetaInfo文件)生成对应的Map输入数据数组JobSplit.TaskSplitMetaInfo[],用于对map任务进行初始化(在createSplits中)。TaskSplitMetainfo中保存的TaskSplitIndex指明了该split在job.split文件中的位置(即1:job.split在TT本地的目录,2,该split信息在job.split文件中的偏移量)。


4.在TT开始执行任务前,会首先从HDFS中将job.split,job.jar等文件拷贝到本地(copyToLocal), 从JT端收到任务指令后,其中包括这个
TaskSplitIndex,其根据TaskSplitIndex从job.split中读取InputSplit信息,开始执行任务。



job.split存放所有分片信息, job.splitmetainfo存放所有分片的元数据信息

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    job提交yarn平台过程.png

    job提交yarn平台过程.png,描述的是hadoop 作业提交过程

    Hadoop大数据处理-Job提交过程分析

    大数据(bigdata)中,Hadoop如何处理提交的作业(Job),本课件深入分析,一目了然。

    Hadoop从入门到上手企业开发

    058 MapReduce提交作业源码跟踪讲解 059 MR作业运行流程整体分析 060 MapReduce执行流程之Shuffle和排序流程以及Map端分析 061 MapReduce执行流程之Reduce端分析 062 MapReduce Shuffle过程讲解和Map Shuffle Phase...

    Hadoop权威指南 第二版(中文版)

     作业的提交  作业的初始化  任务的分配  任务的执行  进度和状态的更新  作业的完成  失败  任务失败  tasktracker失败  jobtracker失败  作业的调度  Fair Scheduler  Capacity Scheduler  shuffle...

    Hadoop权威指南(中文版)2015上传.rar

    作业的提交 作业的初始化 任务的分配 任务的执行 进度和状态的更新 作业的完成 失败 任务失败 tasktracker失败 jobtracker失败 作业的调度 Fair Scheduler Capacity Scheduler shuffle和排序 map端 reduce端 配置的...

    Hadoop源码分析

    Hadoop源码分析,Map-Reduce作业提交运行入手分析这个过程中涉及到的Hadoop源码架构,此外本文基于的Hadoop版本是2.6.4

    Hadoop_HDFS和MapReduce架构浅析_郝树魁.pdf

    重点介绍了Hadoop MapReduce的工作机制,并以作业提交、作业初始化、任务分配、任务执行和任务进度更新等流程介绍了Job Client、JobTracker、TaskTracker和HDFS在MapReduce过程中的分工与协作,最后,对云计算作出展望...

    hadoop作业调优参数整理及原理

    这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存buffer(MapOutputBuffer,即上图...

    MapReduce执行流程和Shuffle过程

    本节将对 Hadoop MapReduce 的工作机制进行介绍,主要从 MapReduce 的作业执行流程和 Shuffle 过程方面进行阐述。通过加深对 MapReduce 工作机制的了解,可以使程序开发者更合理...作业提交之后,就会进入自动化执行。

    spydra:使用Google Compute Platform的临时Hadoop集群

    Spydra(测试版) 使用Google Compute Platform的临时Hadoop集群... Spydra支持向Dataproc以及现有的本地Hadoop基础结构提交数据处理作业,并且旨在简化向Google Cloud Platform和本地基础结构的迁移和/或双重使用。 S

    Hive SQL语法总结

    Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的Hive SQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为...

    大数据之运维.pptx

    Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为...

    hive3资源包+安装文档

    hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,hive 在几百MB 的数据集上执行...

    matlab聚类kmeans代码-hadoop-hw7:hadoop-hw7

    提交要求同作业5,附上可视化截图。 实现思路 我直接使用了实例代码来运行,用原来的代码创建maven项目KMeansExample。由于原来的代码不是用maven管理的,而且是基于Hadoop1.2编写的程序,所以有一些地方需要进行...

    大数据开发笔试.docx

    2、 mr的工作原理 答:当客户提交作业后,MapReduce库先把任务splits不同的块,然后根据"移动计算比移动数据更明智"的思想,把任务分发到各个DataNode上。在不同的DataNode上分别执行Map操作,产生键值对,然后通过...

    毕业设计项目-基于Spark网易云音乐数据分析系统源码+项目说明(含爬虫).zip

    3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在...

    Spark源码系列(二)RDD详解

    上一章讲了Spark提交作业的过程,这一章我们要讲RDD。简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据。RDD的全名是ResilientDistributedDataset,意思是容错的分布式数据集,每一个RDD都会有5个...

Global site tag (gtag.js) - Google Analytics