Job提交流程源码分析
1 从 job.waitForCompletion 开始,进入waitForCompletion()开始进行提交。
2 在waitForCompletion中进行状态的确认。
共有两种状态:DEFINE和RUNING,
DEFINE
状态进入submit()中。
RUNING
状态表示集群此时正在运行,无法进行提交。
3 再次确认状态
再次确认状态为DEFINE,同时在connect()中会根据本地模式或是远程集群生成不同的对象,若是本地则生成 LocalJobRunner 对象。
4 构造YARNRunner对象:
5 开始提交信息给集群。
此处写入jar包。
调用了默认的TextInputFormat()对象进行分片操作,TextInputFormat会根据文件的数量进行分片,一个文件分一片,下图为分片信息文件。
此处提交配置文件