什么是MapReduce?

MapReduce是一个编程框架,应用程序可以将大数据分割成更小的块进行并行处理。这种方法允许对大量数据集进行高速分析。

MapReduce最初是一种专有的谷歌技术,但后来已普遍化。MapReduce最流行的实现是与Apache Hadoop

MapReduce是如何工作的?

MapReduce包括两个主要阶段:映射和简化。

首先,映射器应用程序对数据进行分段和标记。这种方法有助于对大量非结构化数据进行组织处理。

接下来,一个reducer应用程序对来自映射器的数据进行排序和组合。减速机的结果是一个更小的,逻辑上一致的数据集,适合高速分析。

在大数据环境中,MapReduce系统会将可用数据分成更小的块。映射器和简化器的离散实例并行处理这些块。

MapReduce工作流示例

文本是非结构化数据的一种形式。它被称为非结构化数据,因为它不是容易查询的关系数据库的形式。

MapReduce可以带来一些结构,允许复杂的自然语言处理操作,如情感分析。

处理文本的典型工作流可能是这样的:

1)输入

在输入阶段,MapReduce应用程序将把数据分成更小的块,通常小于128 MB。如果一个算法正在处理一本书的文本,它可能会把它分成单独的段落。

在这个例子中,假设我们正在分析本文中的词频:

参见Spot run

原地跑

来看看点点

MapReduce算法可能像这样分割文本

1 -参见Spot run

2 -原地跑

3 -来看看点点

这个拆分的内容然后传递到下一个阶段:映射。

2)映射

映射过程为拆分中的每个数据元素创建键-值对。这些对的符号格式为<键,值>。

在这个示例算法中,我们试图确定词频。键是单个单词,值将为1,这表示单词的单个实例。将运行三个映射器来处理三个分割中的每一个。结果如下所示:

M1 - <看,1>

M2 - <跑,1> <点,1> <跑,1>

M3 - <来,1>

这三个映射器同时运行,从而减少了总体处理时间。虽然每个映射器的输出都不是立即有用,但我们可以看到数据现在有了更多的结构。

3)洗牌

每个映射器将其输出传递给一个减速器,这是一个单独的算法。减速机只有从映射器接收到数据后才能开始处理。

样本文本中的原始词序遵循英语语法规则。这个顺序与我们的目的无关,因此减速器必须以一种更有用的方式重新组织这些值。对于词频,它可以根据键对数据进行分组。结果是这样的:

<看,1> <看,1>

<斑点,1> <斑点,1> <斑点,1>

<运行,1 ><跑,1> <跑,1>

<来,1 >

现在,这些数据有了更合理的逻辑结构,可以进行最后的精简。

4)减少

减速机现在将尝试减少分析数据。在这种情况下,reducer将简单地组合每个键的值。最终输出如下所示:

<看,2 >

<现货3 >

<运行3 >

<来,1 >

根据这些值,很容易推断出原始文本中词频的报告。

MapReduce的用途是什么?

MapReduce应用程序可以在多种语言中工作。Hadoop支持Java、Ruby、Python和c++中的应用程序。

上面的例子查看了一小段文本。但MapReduce通常用于大数据,通常在一次操作中处理pb级的信息。

这是有益的,原因有很多。

跨多个物理设备更快的查询

在典型的大数据结构中,数据在物理上跨多个设备存在。这可能包括不同服务器中的硬盘驱动器或其他存储设备,甚至在不同的建筑中。

对于涉及所有这些数据的操作,每个物理设备都是同时进行的,这是一个巨大的资源开销。MapReduce从根本上讲就是将查询过程分解为更易于管理的块。映射器和还原器可以专注于特定的设备甚至特定的磁盘扇区。

未排序数据结构的导航

诸如数据的湖泊保存大量未排序的数据。这可以包括尚未通过转换过程,以及半结构化和非结构化数据。

如果没有MapReduce这样的策略,就不可能对这些数据结构执行任何类型的操作。映射器和还原器可以筛选数据湖的内容,并提供结构化的信息。这是在数据湖上执行分析时至关重要的一步。

机器学习

机器学习算法是对非结构化数据进行排序的工具。标记数据的ML算法查找模式,然后将这些模式存储起来以供将来参考。可用的模式越多,ML算法就越“智能”。

MapReduce可以帮助ML算法在大型数据集中导航。上面给出的例子是机器学习的一个应用程序,即自然语言处理的一部分。MapReduce帮助将非结构化语言数据转换为适合存储在关系数据库中的数据。

数据探索

数据探索是走向分析的第一步。分析团队可能不知道在大型数据集中从哪里寻找值得进一步研究的集群和趋势。数据探索可以标记出有潜力的领域。

例如,在上面的例子中,我们看到了像“run”和“spot”这样的特定单词的集群。分析顾问可以使用这些集群信息来决定在哪里集中进行可能产生见解的进一步研究。

术语汇编

数据集成技术的命名法指南。

Baidu
map