Hadoop Job提交流程详解:从启动到执行
需积分: 3 146 浏览量
更新于2024-07-20
收藏 254KB DOC 举报
本篇文章主要介绍了Hadoop MapReduce编程中Job提交流程的详细步骤。在Hadoop1环境中,开发人员编写MapReduce程序时,通常会使用`runJob()`方法启动一个JobClient实例,这个实例负责管理和协调作业的生命周期。
首先,JobClient通过`getNewJobID()`接口向JobTracker发起作业提交请求。JobTracker是Hadoop集群中的一个重要组件,它负责作业调度和资源管理。作业ID(例如:job_201101281410_0001)由JobTracker生成,包含了JT(JobTracker的标识符)和作业序列号,便于跟踪作业状态。
在作业提交时,JobClient需要对数据源进行切片(split),这并不是实际的数据处理,而是数据块的引用,以便于后续的Map任务根据这些引用来定位数据。切分后的结果会被保存在`job.splits`资源文件中,每个split对应一个Map任务。JobClient接下来会收集作业执行所需的资源,包括JAR文件(包含作业执行代码)、配置文件以及split文件,这些资源会被上传到JobTracker的工作目录,即用户名称加上作业ID的特定目录。
JobClient上传完毕后,会向JobTracker提交作业,提交的内容仅限于Job ID、资源文件的位置等基础信息,不会直接传递数据或计算细节,因为所有组件都通过HDFS访问数据,保持了数据的一致性和安全性。作业被JobTracker放入队列,等待资源分配。当TaskTracker(负责执行实际任务的节点)可用时,JobTracker会根据split信息将任务分配给TaskTracker。
TaskTracker通过心跳机制定期与JobTracker通信,获取分配的任务。它们会从HDFS中下载所需的资源文件,如JAR包、参数等,然后在本地启动Java虚拟机(JVM)的子进程,运行MapTask和ReduceTask。一个TaskTracker能够并行执行多个任务,这提高了Hadoop集群的处理能力。
总结来说,Hadoop Job的提交流程涉及JobClient与JobTracker之间的交互,以及数据切分、资源上传、任务分配和执行等关键步骤,展现了Hadoop分布式计算模型的有效组织和管理。
点击了解资源详情
1671 浏览量
点击了解资源详情
2021-03-18 上传
2011-11-10 上传
2019-07-12 上传
2012-05-10 上传
cs1049281836
- 粉丝: 0
- 资源: 11
最新资源
- 易语言源码文件属性对话框模块源码.rar
- moneyConvert
- digipost-api-client-java-5.0.zip
- labview控制,如何给c语言源码做个界面,c语言
- 64个24px图标 .sketch素材下载
- sdl-helper-cpp:一种使SDL更轻松,更快速的方法
- 14.0(FromXcode_12_beta_3_xip).zip
- homebrew-redis-cli:通过homebrew安装redis-cli
- 安卓Android二次元社区论坛bbs绘画app可导入AndroidStudio
- Universal-CollapsingTabLayout,折叠带Tablayout的工具栏布局。.zip
- blekso.github.io:米哈伊尔·伊施特万(MihaelIštvan)
- Baekjoon-Algorithm:算法研究
- 易语言枚举注册表
- opengrok_tool.zip
- Cross-platform-programming-Lab1
- matlab代码sqrt-machine_learning_PCA:基于Matlab的PCA