Hadoop0.21.0源码流程分析(1)-客户端提交作业
2011-05-27 20:47
603 查看
流程图
函数调用关系图
JobConf
JobConf
类继承
org.apache.hadoop.conf.Configuration
类,所有客户端程序中配置的信息和其他运行信息,都会保存在这个类里。
JobClient
JobClient.runJob(job)
静态方法会实例化一个
JobClient
实例
,
然后用此实例的
submitJob(conf)
方法向
master
提交作业。此方法会返回一个
RunningJob
对象,它用来跟踪作业的状态。作业提交完毕后,
JobClient
会根据此对象开始轮询作业的进度,直到作业完成。
submitJob(conf)
内部是通过
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
)
等。
写完这三个文件之后
,
此方法会通过
RPC
调用
master
节点上的
JobTracker.
submitJob( )
方法,此时作业已经提交完成。
JobClient
里面使用
使用
RPC
机制来构造一个实现
JobSubmissionProtocol
接口的
JobTracker
的
代理,然后利用远程发放直接执行
JobTracker
里的
submitJob
。
JobTracker
JobClient
提交
job
后,
JobTracker
会创建一个
JobInProgress
来跟踪和调度这个
job
,并把它添加到
job
队列里。
JobInProgress
会根据提交的
job jar
中定义的输入数据集(已分解成
FileSplit
)创建对应的一批
TaskInProgress
用于监控和调度
MapTask
和
ReduceTask
。
函数调用关系图
JobConf
JobConf
类继承
org.apache.hadoop.conf.Configuration
类,所有客户端程序中配置的信息和其他运行信息,都会保存在这个类里。
JobClient
JobClient.runJob(job)
静态方法会实例化一个
JobClient
实例
,
然后用此实例的
submitJob(conf)
方法向
master
提交作业。此方法会返回一个
RunningJob
对象,它用来跟踪作业的状态。作业提交完毕后,
JobClient
会根据此对象开始轮询作业的进度,直到作业完成。
submitJob(conf)
内部是通过
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
)
等。
写完这三个文件之后
,
此方法会通过
RPC
调用
master
节点上的
JobTracker.
submitJob( )
方法,此时作业已经提交完成。
JobClient
里面使用
使用
RPC
机制来构造一个实现
JobSubmissionProtocol
接口的
JobTracker
的
代理,然后利用远程发放直接执行
JobTracker
里的
submitJob
。
JobTracker
JobClient
提交
job
后,
JobTracker
会创建一个
JobInProgress
来跟踪和调度这个
job
,并把它添加到
job
队列里。
JobInProgress
会根据提交的
job jar
中定义的输入数据集(已分解成
FileSplit
)创建对应的一批
TaskInProgress
用于监控和调度
MapTask
和
ReduceTask
。
相关文章推荐
- Hadoop0.21.0源码流程分析(1)-客户端提交作业
- Hadoop源码解析之YARN客户端作业提交流程
- Hadoop0.21.0源码流程分析(2)-主节点接收作业
- Hadoop0.21.0源码流程分析(2)-主节点接收作业
- hadoop1.x作业提交过程分析(源码分析第二篇) 推荐
- Hadoop源码分析8: IPC流程(3)客户端的clients、connections、calls复用
- Hadoop0.21.0源码流程分析(3)-Task节点管理启动任务
- Hadoop0.21.0源码流程分析(3)-Task节点管理启动任务
- Hadoop调度源码分析 作业提交到完成初始化部分
- Hadoop源码解析之YARN服务端作业提交流程
- Hadoop作业提交与执行源码分析
- Hadoop作业提交源码分析
- Hadoop-2.7.3源码分析:MapReduce作业提交源码跟踪
- Hadoop源码分析1: 客户端提交JOB
- Hadoop源码分析--MapReduce作业(job)提交源码跟踪
- hadoop yarn的job提交流程源码分析
- Hadoop(十二):从源码角度分析Hadoo是如何将作业提交给集群的
- hadoop作业提交源码分析
- 客户端提交mr job源码流程分析
- hadoop源码解析之hdfs写数据全流程分析---客户端处理