头图

  Spark的生态圈体系架构与Hadoop略有不同。因为在Spark中只有数据的计算部分,没有数据的存储部分,因为Spark的核心就是它的执行引擎。下图展示了Spark的生态圈体系,以及访问每个模块的访问接口。
在这里插入图片描述
  视频讲解如下:
https://www.bilibili.com/video/BV1X1421k7iM/?aid=1555599153&c...

1、离线执行引擎Spark Core

  Spark Core是Spark的核心部分,也是Spark执行引擎。在Spark中执行的所有计算都是由Spark Core完成,它是一个种离线计算引擎。Spark Core提供了SparkContext访问接口用于提交执行Spark任务。通过该访问接口既可以开发Java程序,也可以开发Scala程序来分析和处理数据。SparkContext也是Spark中最重要的一个对象。

Spark中的所有计算都是Spark Core离线计算,因此Spark生态圈体系中不存在真正的实时计算。

2、数据分析引擎Spark SQL

  Spark SQL是Spark用来处理结构化数据的一个模块,它的核心数据模型是DataFrame,其访问接口是SQLContext。这里可以把DataFrame理解成是一张表。当DataFrame创建成功后,Spark SQL可支持DSL语句和SQL语句来分析处理数据。由于Spark SQL底层的执行引擎是Spark Core,因此Spark SQL执行的本质也是执行的一个Spark Core任务。

Spark SQL和Hive是目前大数据生态圈体系中使用最广泛的两个大数据分析引擎。

3、流式计算引擎Spark Streaming

  Spark Streaming是核心Spark API的扩展,它可实现可扩展、高吞吐量、可容错的实时数据流处理。但是Spark Streaming底层的执行引擎依然是Spark Core,这就决定了Spark Streaming并不是真正的流处理引擎,它是通过时间的采样间隔把流式数据编程小批量数据进行处理,其本质任然是批处理的离线计算。Spark Streaming访问接口是StreamingContext。

4、MLlib与GraphX

  MLlib是Spark中支持机器学习算法的一个框架;而GraphX则是Spark支持图计算的框架。

MLlib和GraphX主要研究的是各种算法。因此在大数据体系中将不会作为重点的内容进行介绍。

赵渝强老师
30 声望10 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...