Hadoop MapReducev1:深入分析JobClient提交流程
29 浏览量
更新于2024-08-27
收藏 148KB PDF 举报
"MapReduceV1的Job提交流程分析"
MapReduceV1是Hadoop早期版本中的分布式计算框架,其核心组件包括JobClient、JobTracker和TaskTracker。在MapReduceV1中,当开发人员编写完MapReduce程序后,需要通过JobClient将Job提交到JobTracker进行调度和执行。本文将详细分析Job提交在JobClient端的具体步骤。
1. 创建Job实例与设置状态
在MapReduce程序中,开发者首先会创建一个Job实例,通过`Configuration`对象设置各种作业参数,例如输入路径、输出路径、Mapper和Reducer类等。同时,Job的状态也会被初始化。
2. 初始化JobClient并建立连接
接着,创建JobClient对象,这个对象负责与JobTracker进行通信。在初始化过程中,JobClient会尝试建立到JobTracker的远程过程调用(RPC)连接,确保可以进行后续的交互。
3. 获取新的JobID
JobClient通过JobSubmissionProtocol协议与JobTracker进行远程通信,请求并获取一个唯一的JobID,用于标识即将提交的Job。
4. 准备Job资源
JobClient将Job相关的资源(如jar文件、配置文件、输入数据等)复制到HDFS上。这些资源包括临时文件(tmpfiles)、临时jar文件(tmpjars)、临时归档文件(tmparchives)以及Job的主jar文件。这样做是为了使得JobTracker和TaskTracker可以在需要时访问这些资源。
5. 计算输入Split和元数据
根据Job配置的InputFormat,JobClient会计算输入数据的Split,生成SplitMetaInfo信息,包括每个Split的起始位置、长度等。此外,还会计算出所需的map任务和reduce任务的数量。
6. 写入HDFS
JobClient将计算出的Split信息、元数据以及Job配置写入HDFS的一个特定目录,这样JobTracker在接收到Job提交请求后,能够读取这些信息来准备和调度任务。
7. 提交Job
最后,JobClient通过JobSubmissionProtocol的submitJob方法,将整个Job提交给JobTracker。JobTracker接收到Job后,会进行一系列的检查和预处理,然后开始调度map和reduce任务给合适的TaskTracker执行。
通过以上步骤,MapReduce程序的Job成功地在JobClient端完成提交,进入了JobTracker的调度和执行阶段。理解这一过程对于优化MapReduce作业性能、调试问题或实现自定义的Job提交逻辑至关重要。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-02-26 上传
2017-08-26 上传
2021-04-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38612811
- 粉丝: 5
- 资源: 931
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍