目录
1. MapReduce 运行流程
MapReduce主要经过三个阶段:
① Map阶段
1)以<k1, v1>格式读取文本文件,其中k1为文本偏移量,通常定义为数字类型(如LongWritable),v2为文本,通常定义为Text类型
2)自定义语句,用于处理<k1, v1>及生成<k2, v2>
3)将2)中生成的<k2, v2>写入Context类的对象中
② Shuffle阶段
1)分区
2)排序
3)规约
4)分组
最后形成新的<k2, v2>并输出
③ Reduce阶段
1)以<k2, v2>形式读取数据
2)自定义语句,用于处理<k2, v2>及生成<k3, v3>
3)以<k3, v3>形式输出数据
(图为自制,有参考视频内容)
2. 规划自定义的 MapReduceSort 程序
需求:
现有文件:
s1.txt:
35 12345 21 5 -8 365
s2.txt:
38 156 12 6 -2 -10
s3.txt:
45 2365 68 -15 -18 -30
运用MapReduce编写一个简单排序的程序,如果将上面三个文件作为输入,则排序后的输出结果如下所示:
1 -30
2