基本概念
- RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象
- DAG(Directed Acyclic Graph)有向无环图
为什么要用Spark?
主要是因为MapReduce模型是有缺陷的。一般来说,MapReduce将任务划分成Map和Reduce,中间再shuffle,有时候,我们会遇到一些迭代计算的任务,例如机器学习,会将Reduce输出的结果,重新作为Map的输入,而且这样的操作非常频繁,从而就会频繁地从硬盘的HDFS中存取数据,增大了时间开销。
而Spark则会将数据放到内存中计算,Spark的应用都是基于RDD的应用,能实现数据共享。每一次迭代,直接在内存中检索数据,从而节约执行时间。
Spark执行任务的特点:
- 在内存中计算:中间结果缓存在内存中
- 使用缓存在内存里面的RDD:能够执行快速的迭代查询任务
网友评论