`
cloudeagle
  • 浏览: 112574 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

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存放所有分片的元数据信息
分享到:
评论

相关推荐

    如何使用eclipse调试Hadoop作业

    确保你的Hadoop作业在运行时记录了足够的日志信息,这可以帮助你追踪作业的执行过程和可能的异常。Eclipse可以整合Log4j或其他日志框架,以便在控制台直接查看日志输出。 最后,不要忽视"build.xml"文件的作用。这...

    hadoop提交作业分析.doc

    【Hadoop 作业提交流程详解】 在Hadoop生态系统中,提交一个MapReduce作业通常通过执行类似`bin/hadoop jar xxx.jar mainclass args`的命令来完成。这个过程看似简单,实际上涉及到了多个步骤和组件的交互。下面...

    hadoop作业记录档案

    总结来说,"hadoop作业记录档案"是Hadoop作业执行过程中的重要组成部分,它不仅记录了作业的运行细节,也是问题排查和性能优化的重要依据。理解和掌握如何有效地管理和利用这些日志,是成为一名合格的Hadoop开发者或...

    job提交yarn平台过程.png

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

    win7下hadoop job提交

    在Windows 7环境下提交Hadoop作业(Job)是一项技术性的任务,涉及到多个步骤和概念。首先,我们需要了解Hadoop的基本架构。Hadoop是由Apache软件基金会开发的一个开源分布式计算框架,它允许在廉价硬件上处理和存储...

    Linux提交hadoop任务

    6. **JobSubmitter**:`LinuxS.java`可能是一个JobSubmitter类,负责将Mapper和Reducer组合成一个完整的Hadoop作业,并提交到集群进行执行。JobSubmitter会设置作业参数,如输入输出路径、分区函数、排序规则等,...

    大数据 hadoop mapreduce 词频统计

    4. **运行Job**:配置好MapReduce作业后,提交到Hadoop集群进行执行。集群会自动调度任务,将工作分配给各个节点。 5. **结果收集**:MapReduce完成后,最终的词频统计结果会被写入HDFS,可以进一步进行可视化或...

    hadoop-eclipse-plugin-2.6.0.jar.zip_2.6.0_hadoop_hadoop plugin

    5. **提交作业**:通过插件提供的菜单或快捷键,选择“运行” -> “在Hadoop上运行”,即可将作业提交到Hadoop集群。 三、最佳实践 1. **版本匹配**:确保插件版本与所使用的Hadoop版本兼容,以避免可能出现的问题...

    远程调用执行Hadoop Map/Reduce

    7. **工具集成**:有许多开源工具可以帮助我们远程提交和管理Hadoop作业,如Hadoop命令行工具、Hadoop的Web UI、Apache Oozie工作流管理系统等。这些工具提供了方便的接口,使开发者能便捷地与集群交互。 8. **安全...

    重庆理工大学hadoop第二次作业 作业:王唯.zip

    3. Hadoop配置:学习配置Hadoop环境,包括集群设置和作业提交。 4. 数据输入与输出:了解如何将数据输入Hadoop系统以及处理后的结果输出。 5. 错误处理和容错性:理解Hadoop的容错机制,如何处理节点故障等问题。 6....

    hadoop练手数据

    在Hadoop作业执行过程中,会生成各种日志文件,这些文件对于理解和调试作业的执行过程至关重要。"Resultlog"暗示这可能是某个MapReduce作业的输出结果,而"0406"可能是日期,表示这个日志是4月6日产生的。 在使用...

    hadoop1.x的eclipse插件

    3. **Job提交与监控**:插件集成了Hadoop作业提交的功能,开发者可以直接在Eclipse中启动作业,并通过内置的视图监视作业的状态,包括作业进度、任务状态、错误信息等。 4. **资源管理**:可以管理HDFS上的文件和...

    Hadoop任务调度器

    Hadoop的作业调度过程可以划分为几个主要阶段,这些阶段涉及到从作业提交到任务分配的各个环节。下面详细介绍Hadoop任务调度器的基础知识。 首先,Hadoop调度流程可以概括为以下几个主要步骤: 1. 客户端提交作业给...

    hadoop集群搭建过程

    - **JobTracker**:负责接收客户端提交的作业请求,分配和调度作业到各个TaskTracker节点上执行,并监控TaskTracker的状态,重试失败的任务等。 - **Slave节点** 主要承担数据存储和任务执行的任务,主要包括 **...

    pc机连接集群的HADOOP_HOME

    在IT行业中,Hadoop是一个广泛使用的开源框架,用于存储和处理大数据。Hadoop分布式文件系统(HDFS)和MapReduce是其核心...通过这样的设置,你就可以在本地编写、测试和提交Hadoop作业到远程集群,实现大数据处理。

    hadoop2.6.4 eclipse插件

    4. **运行和提交作业**:可以直接在 Eclipse 中运行 MapReduce 作业,观察作业状态,包括任务进度、失败原因等,还可以将作业提交到 Hadoop 集群进行分布式执行。 5. **集成开发环境**:与 Eclipse 的其他功能无缝...

    Hadoop-eclipse-plugin-2.7.6下载与说明

    7. **提交作业**:当代码调试完成后,你可以将MapReduce作业提交到Hadoop集群上。在Driver类上右键单击,选择“Run As” -> “Hadoop Job”,然后按照提示步骤提交作业。 8. **监控作业状态**:一旦作业提交,你...

    配置Eclipse连接Hadoop

    - 在Eclipse中,通过Hadoop插件提交你的作业到集群,可以实时监控作业状态和日志,参考"Hadoop Call to failed.txt"了解可能遇到的问题和解决方案。 总结来说,配置Eclipse连接Hadoop涉及安装和配置Hadoop,安装...

Global site tag (gtag.js) - Google Analytics