Job的运行过程

Job运行过程

Job具体运行过程

a) 运行mapred程序

b) 本次运行将生成一个Job,于是JobClientJobTracker(ResourceManager)申请一个JobId以标识这个Job

c) JobClient将Job需要的资源提交到HDFS一个以JOBID命名的目录中。这些资源包括JAR,配置文件,InputSplit

d) JobClientJobTracker(ResourceManager)提交这个Job

e) JobTracker初始化该Job

f) JobTracker从HDFS获取该JobSplit信息

g) JobTrackerTaskTracker分配任务

h) TaskTracker(NodeManager)从HDFS上获取到该Job相关资源

i) TaskTracker(NodeManager)开启一个新的JVM

j) TaskTracker用一个新的JVM执行Map或者Reducer

 

运行原理解析

class JobSubmitter {

  //这里的maps是分片的个数

  int maps = writeSplits(job, submitJobDir);

  //从这里可以看出,map函数的调用次数取决于maps的个数,是一对一的关系

      conf.setInt(MRJobConfig.NUM_MAPS, maps);

      //把所有的信息写入到配置文件中。JobFile

  writeConf(conf, submitJobFile);

}

posted @ 2016-08-19 17:33  周蓬勃  阅读(192)  评论(0)    收藏  举报