MapReduce作业的执行流程

MapReduce作业的执行流程_第1张图片

1,映射精简实际处理流程

1.1,输入阶段

数据以一定的格式传递给映射器,有的TextInputFormat,DBInputFormat,SequenceFileFormat等可以使用,在Job.setInputFormat可以设置,也可以自定义分片函数。

1.2,地图阶段

对输入的(键,值)进行处理,即图(K1,V1) - >列表(K2,V2),使用Job.setMapperClass进行设置。

1.3,排序阶段

对于映射的输出进行排序,使用Job.setOutputKeyComparatorClass进行设置,然后定义排序规则。

1.4,结合阶段

这个阶段对于排序之后又相同键的结果进行合并,使用Job.setCombinerClass进行设置,也可以自定义组合类类。

1.5,分区阶段

将映射器的中间结果按照键的范围划分为ř份(降低作业的个数),默认使用HashPartioner(key.hashCode()&Integer.MAX_VALUE的%numPartitions),也可以自定义划分的函数。使用Job.setPartitionClass设置。

1.6,减少阶段

对于映射阶段的结果进行进一步处理,Job.setReducerClass进行设置自定义的减少类。

1.7,输出阶段

减速机输出数据的格式。

2,一个工作运行流程

一个映射精简作业的执行流程是:作业提交 - >作业初始化 - >任务分配 - >任务执行 - >更新任务执行进度和状态 - >作业完成。 

一个完整的映射精简作业流程,包括4个独立的实体: 
客户端:客户端,编写映射精简程序,配置作业,提交作业。 
JobTracker的:协调这个作业的运行,分配作业,初始化作业,与的TaskTracker进行通信。 
TaskTracker :负责运行作业,保持与JobTracker进行通信 
HDFS :分布式文件系统,保持作业的数据和结果。


你可能感兴趣的:(hadoop)