MapReduce模式
MapReduce范式创建于 2003 年,旨在以大规模并行方式处理大型数据集。 MapReduce模型的目标是简化大型数据集的转换和分析方法,以及让开发人员专注于算法而不是数据管理。 该模型允许简单地实施数据并行算法。 这种模式有多种实现方式,包括Google使用 C++ 编程的方式,以及Apache使用 Java 编程的Hadoop实现方式。 两者都是在无共享、点对点环境中的大型商品硬件集群上运行。
MapReduce模型包括两个阶段:映射阶段和还原阶段,分别由映射函数和还原函数表示。 这些函数由程序员指定,旨在对作为输入和输出的键/值对进行操作。 键和值可以是简单的数据类型,如整数,也可以是更复杂的数据类型,如商业交易。
- 映射
- 映射函数(也称为映射任务)处理单个键/值输入对,并生成一组中间键/值对。
- 减少
- 还原函数,也称为还原任务,包括获取在映射阶段生成的、共享相同中间键的所有键/值对,并生成零、一个或多个数据项。
请注意,map 和 reduce 函数不涉及MapReduce作业的并行化和执行。 这是MapReduce模型的职责,它会自动处理输入数据的分配,以及调度和管理映射和还原任务。