全部产品
MaxCompute

扩展MapReduce

更新时间:2017-06-07 13:26:11   分享:   

传统的MapReduce模型要求每一轮MapReduce操作之后,数据必须落地到分布式文件系统上(比如HDFS或 MaxCompute 表)。而一般的MapReduce应用通常由多个MapReduce作业组成,每个作业结束之后需要写入磁盘,接下去的Map任务很多情况下只是读一遍数据,为后续的Shuffle阶段做准备,这样其实造成了冗余的IO操作。

MaxCompute 的计算调度逻辑可以支持更复杂编程模型, 针对上面的那种情况,可以在Reduce后面直接执行下一次的Reduce操作,而不需要中间插入一个Map操作。基于此,MaxCompute 提供了扩展的MapReduce模型,即可以支持Map后连接任意多个Reduce操作,比如Map->Reduce->Reduce。

Hadoop Chain Mappper/Reducer也支持类似的串行化Map或Reduce操作,但和MaxCompute的扩展MapReduce(MR2)模型有本质的区别,因为Chain Mapper/Reducer还是基于传统的MapReduce模型,只是可以在原有的Mapper或Reducer后面在增加一个或多个Mapper操作(不允许增加Reducer)。这带来的好处是用户可以复用之前的Mapper业务逻辑,可以把一个Map或Reduce拆成多个Mapper阶段,但本质上并没有改变底层的调度和I/O模型。

MaxCompute MapReduce相比,MR2在Map/Reduce 等函数编写方式上基本一致。较大的不同点发生在作业时。更多详细信息可参考扩展MapReduce示例

本文导读目录
本文导读目录
以上内容是否对您有帮助?