您的位置:首页 > 其它

WordCount程序运行流程分析

2017-03-13 15:51 330 查看
在job.submit()时,客户端会去查看输入文件的规模,并根据输入的文件规模决定使用多少个MapperTask来运行Job。同时还会进行任务的规划,划分具体哪个MapTask处理哪个数据文件的具体范围。

等到Job被提交给YARN集群后,ResourceManager会根据当前集群中各节点的情况,选择一台机器启动MR Appmaster,并把Job相关的信息都交给MR Appmaster。然后MR Appmaster就根据任务的分片及数据的分布情况启动对应的MapTask。

然后MapTask就调用InputFormat组件去读取对应的文件,每读取一行就调用Mapper中的map方法。

Mapper输出结果后交给OutputCollector,将数据收集后放入分区且排序的文件中。

等到MapTask全都运行完后再启动ReduceTask。ReduceTask从各个节点的OutputCollector中取属于自己的分区数据。按照key分类,一组调用一次Reducer类中的reduce方法。

然后reduce方法会输出,调用OutputFormat最终写入HDFS中。每一个ReduceTask的输出分到一个Part中。

示意图如下所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: