spark中mapReduce的计算过程

82 阅读1分钟

在spark中,MapReduce模型被广泛应用于分布式计算中。Spark使用了类似于MapReduce的计算模型,但在现实上进行了一些改进,例如引入了弹性分布式数据集(RDD,DataSet)。 以下是spark中mapReduce的计算过程:

1.创建RDD

首先,数据被分为多个分区,每个分区形成一个RDD,这可以通过读取外部数据源或在程序中并行创建RDD来完成。

2.Map过程:

作用于RDD中每条数据,在每条数据上应用一个函数并映射为一个或是键值对的结构数据。这个是在每个节点上运行。

3.shuff过程

把结果集中具有相同key的数据放置在相同的节点上,此过程是在map和reduce之间进行的,用户无感知。此过程也是最耗性能的过程。

4.reduce过程

作用于RDD中每条数据或是合并或是计算,此过程底层依然使用的map函数,操作方式不通而已。发生在每个节点上,对用户无感知。