WordCount程序运行流程分析

在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中。

示意图如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值