mapReduce:它如何为可扩展的数据处理提供动力

MAPREDUCE编程模型的概述以及如何使用它来优化大规模的数据处理。后MAPREDUCE:它如何首先出现在数据科学上的可扩展数据处理。

来源:走向数据科学

,我将简要介绍MapReduce编程模型。希望在阅读本文后,您以扎实的直觉对MapReduce的含义,在可扩展数据处理中所扮演的角色以及如何识别何时可以应用它来优化计算任务。

mapReduce

内容:

术语和有用的背景:

以下是一些术语/概念,在阅读本文其余部分之前可能会知道。

什么是MapReduce?

由Google的几个开发人员在2000年代初期引入,MapReduce是一个编程模型,可以在许多商品机器组成的计算集群中以平行和分布的方式进行大规模数据处理。

计算集群 商品机

MAPREDUCE编程模型是优化计算任务的理想选择,这些任务可以分解为输入数据不同分区的独立转换。这些转换通常在分组聚集之后进行。

分组聚合

编程模型将计算分解为以下两个基本数:

    地图:给定输入数据进行处理的分区,分析其每个单个记录的输入数据。对于每个记录,应用一些用户定义的数据转换以提取一组中间键值对。reduce:对于一组中间键值对中的每个不同键,以某种方式汇总值以产生较小的键值对。通常,减少阶段的输出是每个不同键的单个键值对。
  • 地图:给定输入数据进行处理的分区,分析其每个单个记录的输入数据。对于每个记录,应用一些用户定义的数据转换以提取一组中间键值对。
  • 地图 减少 n 主人 工人
      主:通过分配地图并将任务减少到可用的工人来处理任务计划。工作人员:处理地图并减少主人分配的任务。
    主人 工人 fork() 顺序

    动机和简单示例

    map()