Spark理论部分

一、spark简介

     spark是AMP实验室开发的通用内存并行计算框架,使用scala语言实现的。运行速度快,易用性好,通用性强等特点,spark是在借鉴了MapReduce之上发展而来的,继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷,如果说MapReduce是第一代并行计算框架的话,那么Spark就是第二代了。

具体区别主要有以下几点:

  1. Spark把中间数据放在内存中,迭代运算效率肯定高,官方号称要比MapReduce快100倍。而MapReduce中得把结果落地保存在磁盘中,如此多的磁盘读写这样势必影响整体速度。而Spark支持DAG有向无环图的分布式计算框架,减少了迭代过程中数据的落地,提高了处理效率。另外MapReduce过程每次都必须进行sort也是影响的一个因素。
  2. Spark容错性高,Spark引进了弹性分布式数据RDD,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集中一部分丢失,则可以根据“血统”(即数据产生的逻辑)对它们进行重建。另外RDD计算时可以通过Checkpoint设置检查点来实现容错。
  3. Spark更加通用,它拥有很多数据操作的算子,主要有transformations与actions两大类

二、Spark运行模式

Spark理论部分

三、Spark生态圈

Spark理论部分

四、相关术语

Spark理论部分