法拉利的外观(Spark)

如果说 MapReduce 是批处理的马自达,那 Spark 一定是批处理的法拉利

原因之一就是它将数据优先放在内存,内存读取速度远高于 MapReduce 的磁盘 IO 速度,如果需要多次 Map 处理,就像马自达和法拉利比赛跑远距离,之间的差距成指数级扩大

SparkCore 是法拉利的核心引擎

RDD(弹性分布式数据集)、DataFrame、DataSet,Spark 任务处理的基本单元。所有 Operations(中文称为算子)都是作用在上这些数据集上。

SparkCore 定义了 RDD、DataFrame、DataSet。

除此之外,SparkCore 还提供了 Spark 很多核心功能,包括但不限于:

  • SparkContext: spark 任务入口,在提交 Spark 任务之前需要先初始化 SparkContext,用来配置 Application 名、运行方式等等

    SparkContext 也可以被用来创建 RDD,DataFrame 等

  • 存储体系: 定义待处理数据集优先存储于各个 NodeManager (运行节点)的内存,它是法拉利的发动机,飞起跑的可靠保证

transforms 算子很懒

处理 Spark 数据集(如 RDD)的 Operations 有两种:

  • Transforms 算子

  • Actions 算子


transforms 算子处理对象是 RDD,返回的也是 RDD,正如其名,transforms 只是对 RDD 做了转换:

如调用filterMap()过滤数据,Map()对基本单元数据进行转换。


actions 算子则是返回最后结果或者写入存储的操作(返回的不是RDD):

如take(), collect()返回并输出 RDD 中真实的数据,saveAsTextFile()把 RDD 内容保存成文本文件。


当程序运行到 Transforms 算子的时间,该 Transforms 操作并不会第一时间被触发并且执行,该操作只会被记录;

当执行到Actions 时,前面记录的 Transforms 算子才会真正执行。

惰性机制提高了内存的利用率。

Spark 高配

Spark SQL:提供类 SQL 语句解析,将 SQL 解析成 Spark 任务

Spark Streaming:提供微批处理服务,可以看成秒级别的流处理计算框架

GraphX:分布式图处理计算框架,不了解。。。

MLlib:spark 的机器学习框架

本集粗略介绍 Spark,下集从技术细节入手继续讨论^ ^

你可能感兴趣的:(法拉利的外观(Spark))