将以WordCount为例,解释ODPS MapReduce各个阶段的概念。 假设存在一个文本a.txt,文本内每行是
一个数字,我们要统计每个数字出现的次数。 文本内的数字称为Word,数字出现的次数称为Count。如果
ODPS Mapreduce完成这一功能,需要经历下图描述的几个步骤:
首先对文本进行分片,将每片内的数据作为单个Map Worker的输入;
Map处理输入,每获取一个数字,将数字的Count设置为1,并将此对输出,此时以
Word作为输出数据的Key;
在Shuffle阶段前期,首先对每个Map Worker的输出,按照Key值,即Word值排序。排序后进行
Combine操作,即将Key值(Word值)相同的Count累加, 构成一个新的对。此过程
被称为合并排序;
在Shuffle阶段后期,数据被发送到Reduce端。Reduce Worker收到数据后依赖Key值再次对数据排
序;
每个Reduce Worker对数据进行处理时,采用与Combiner相同的逻辑,将Key值(Word值)相同的
Count累加,得到输出结果;