0


spark入门

一 spark是什么

Spark是一种快速、通用、可扩展的大数据分析引擎,其核心优势在于内存计算和高效的数据处理能力。

Spark是在Hadoop基础上的改进,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是,Job中间输出和结果可以保存在内存中而不是HDFS,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。

Spark是MapReduce的优化方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。

二 spark生态圈

Spark当前的生态圈也比较完善了,主要包含

Spark SQL:用来操作结构化数据的组件;

Spark streaming:用来处理实时流数据的组件;

MLlib:提供常见机器学习功能的组件;

Graghx:用于图计算的组件;

spark core:Spark通用基础功能,实现RDD,任务调度,内存管理,容错等功能。

三 spark核心技术

3.1 RDD

3.1.1 RDD是什么?

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合。(主语是集合

  • Resilient :它是弹性的,RDD 里面的中的数据可以保存在内存中或者磁盘里面;
  • Distributed :它里面的元素是分布式存储的,可以用于分布式计算;
  • Dataset: 它是一个集合,可以存放很多元素。

3.1.2 RDD持久化

RDD 通过 persist 或 cache 方法(也是无参调用persist实现的)将计算结果缓存,但是并不是在这两个方法被调用时立即缓存,而是触发后面的 action 时, RDD 才会被缓存在计算节点的内存中,并供后面重用。

重点:RDD持久化的目的是为了提高后续操作的速度;RDD持久化在执行action操作时才进行。

3.2 DAG是什么

DAG(Directed Acyclic Graph 有向无环图)指的是数据转换执行的过程,有方向,无闭环;
RDD 通过一系列的action操作就形成了 DAG ,任务执行时,可以按照 DAG 执行真正的计算。

总结:DAG就是RDD执行操作的流程,也就是一次计算执行过程。

3.3 spark SQL

SparkSQL 是一个既支持 SQL 又支持命令式数据处理的工具;SparkSQL 的主要适用场景是处理结构化数据。

先创建dataframe或dataset,然后就可以通过spark SQL进行在dataframe或dataset执行SQL操作。

3.3.1 DataFrame

DataFrame 是一种以 RDD 为基础的分布式数据集,类似于传统数据库的二维表格,带有 Schema 元信息(可以理解为数据库的列名和类型)。

3.3.2 DataSet

DataSet在dataframe基础上增加了类型信息;

Spark2.0 中两者统一,DataFrame 表示为 DataSet[Row],即 DataSet 的子集。

3.3.3 RDD、DataFrame、DataSet 的区别

3.4 Spark streaming

Spark Streaming 是一个基于 Spark Core 的实时计算框架,可以从很多数据源消费数据并对数据进行实时的处理,然后把数据存储到外部系统(关系数据库、HDFS等)。

工作流程

Spark Streaming 中,会有一个接收器组件 Receiver,作为一个长期运行的 task 跑在一个 Executor 上。Receiver 接收外部的数据流形成 input DStream。

DStream 会被按照时间间隔划分成一批一批的 RDD,当批处理间隔缩短到秒级时,便可以用于处理实时数据流。时间间隔的大小可以由参数指定,一般设在 500 毫秒到几秒之间。

对 DStream 进行操作就是对 RDD 进行操作,计算处理的结果可以传给外部系统。

参考文档:

1.《5w字总结Spark》来源于公众号“五分钟学大数据 ”,作者园陌

2.hadoop与spark的区别


本文转载自: https://blog.csdn.net/xiaofengjia00/article/details/141860455
版权归原作者 xiaofj100 所有, 如有侵权,请联系我们删除。

“spark入门”的评论:

还没有评论