Spark RDD

RDD是Spark对数据的抽象,本文将介绍它与MapReduce的区别以及它的优势

MapReduce存在的问题

  • MapReduce上的迭代操作

Spark RDD

可以看到一个MapReduce作业处理的结果只能存放在硬盘当中,当另一个MapReduce作业去读取这个结果时又得从硬盘读取到内存中,这就产生了大量的数据复制,磁盘I/O,数据的序列化操作,这些多余的操作就使得整个计算系统变慢。

  • MapReduce上的交互操作

Spark RDD

是同样每次查询数据都需要到磁盘里读取数据

使用RDD的操作模型及优势

  • RDD的迭代操作

Spark RDD

可以看到它将一个MapReduce作业的中间结果放到了内存当中,这样别的作业来读取所依赖的结果时速度很快。当内存不够时,它同样会将数据存放到磁盘当中。

  • RDD的交互操作

Spark RDD

当不同的查询都需要一个数据集的时候,直接从内存查询就足够了,当一个数据集被多个作业同时需要时它也支持将数据复制到各个机器上面

总而言之RDD是一个分布式的(基于HDFS)存储在内存中的数据集,使数据以更少的开销在不同的作业上共享,提高并行计算的效率

相关推荐