admin 管理员组

文章数量: 1086019


2024年6月11日发(作者:html怎么在图片上添加文字)

Spark是加州大学伯克利分校的AMP实验室开源的类似MapReduce的通用并行

计算框架,拥有MapReduce所具备的分布式计算的优点。但不同于MapReduce

的是,Spark更多地采用内存计算,减少了磁盘读写,比MapReduce性能更高。

同时,它提供了更加丰富的函数库,能更好地适用于数据挖掘与机器学习等分析算

法。

Spark在Hadoop生态圈中主要是替代MapReduce进行分布式计算,如下

图所示。同时,组件SparkSQL可以替换Hive对数据仓库的处理,组件Spark

Streaming可以替换Storm对流式计算的处理,组件Spark ML可以替换

Mahout数据挖掘算法库。

Spark在Hadoop生态圈中的位置

01

Spark的运行原理

如今,我们已经不再需要去学习烦琐的MapReduce设计开发了,而是直接上

手学习Spark的开发。这一方面是因为Spark的运行效率比MapReduce高,

另一方面是因为Spark有丰富的函数库,开发效率也比MapReduce高。

首先,从运行效率来看,Spark的运行速度是Hadoop的数百倍。为什么会有

如此大的差异呢?关键在于它们的运行原理,Hadoop总要读取磁盘,而

Spark更多地是在进行内存计算,如下图所示。

Hadoop的运行总是在读写磁盘

前面谈到,MapReduce的主要运算过程,实际上就是循环往复地执行Map与

Reduce的过程。但是,在执行每一个Map或Reduce过程时,都要先读取磁

盘中的数据,然后执行运算,最后将执行的结果数据写入磁盘。因此,

MapReduce的执行过程,实际上就是读数据、执行Map、写数据、再读数

据、执行Reduce、再写数据的往复过程。这样的设计虽然可以在海量数据中减

少对内存的占用,但频繁地读写磁盘将耗费大量时间,影响运行效率。


本文标签: 计算 运行 磁盘