原创文章,转载请注明: 转载自工学1号馆
在这个系列中,我将深入分析一个MapReduce作业的提交与初始化过程
从用户输入提交作业命令到作业初始化的整个过程,该过程涉及JobClient、JobTrack和TaskScheduler三个组件,它们的功能分别是:准备运行环境、接收作业、初始化作业。
作业的提交过程比较简单,主要是为后续的作业执行准备环境,主要涉及创建目录、上传文件等操作,而一旦用户提交作业后,JobTrack端便会对作业进行初始化。
作业初始化的主要工作是根据输入数据量和作业配置参数将作业分解成若干个Map Task以及Reduce Task,并添加到相关数据结构中,以等待后续被调用执行,总之,可用下图来表示MapReduce作业提交与初始化过程:
具体分为下面几个步骤:
步骤1:用户使用Hadoop提供的Shell命令提交作业。
步骤2:JobClient按照作业配置信息(JobConf)将作业运行需要的全部文件上传到JobTracker文件系统(通常为HDFS)的某个目录下。
步骤3:JobClient调用RPC接口向JobTracker提交作业。
步骤4:JobTracker接收到作业后,将其告知TaskScheduler,由TaskScheduler对作业进行初始化。
Comments