MapReduce是一种基于java的分布式计算处理技术和程序模型。MapReduce算法包含两个重要的任务,即Map和Reduce。Map接受一组数据并将其转换为另一组数据,其中单个元素被分解为元组(键/值对)。其次是reduce task,它将来自映射的输出作为输入,并将这些数据元组组合成较小的元组集合。顾名思义,reduce任务总是在映射作业之后执行。

MapReduce的主要优点是,它很容易在多个计算节点上扩展数据处理。在MapReduce模型下,数据处理原语称为映射器和约简器。将数据处理应用程序分解为映射器和还原器有时是很重要的。但是,一旦我们在MapReduce表单中编写了一个应用程序,将应用程序扩展到集群中的成百上千甚至上万台机器上,这仅仅是一个配置更改。正是这种简单的可伸缩性吸引了许多程序员使用MapReduce模型。