引言
众所周知,MapReduce编程框架(以下简称MR)一直是大并发运算以及海量数据读写应用设计的利器。在MR编程体系下,一个job通常会把输入的数据集切分为若干块,由map task以完全并行的方式处理消化这些数据块。框架会对map的输出先进行排序,然后把结果作为输入提交给reduce任务。通常作业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。典型的MR程序有如下重要模块结构构成:
No. |
模块 |
描述 |
1 |
InputFormat |
定义map输入数据的格式 |
2 |
OutputFormat |
定义reduce输出数据的格式 |
3 |
OutputKey |
定义map输出数据中key的类型 |
4 |
OutputValue |
定义map输出数据中value的类型 |
5 |
InputSplit |
定义对输入数据进行切分的方式,以分配给Map task |
原文转自:http://www.taobaotest.com/blogs/2515 |