临近年关将spark近来所学整理一下,若有不足请指正。

一、什么是Spark?

Spark是由加州大学伯克利分校AMP实验室开源的分布式大规模数据处理通用引擎,具有高吞吐,低延时,通用易扩展,高容错等特点。

Spark内部提供了丰富的开发库、提供了多种运行模式,Spark函数式编程语言在Scala中实现。

二、Spark的架构?

Spark架构示意图:

Spark的基本知识

Spark各个核心组件介绍:

Client:客户端进程,负责提交作业。

Driver:一个spark作业有一个spark context,一个spark context对于一个driver进程。作业main函数运行在driver中。driver重要负责作业的解析,以及通过DAGScheduler划分stage,将stage转化成TaskSet提交给TaskScheduler任务调度器,进而调度Task到Executor上执行。

Executor:负责执行driver分发的task任务,集群中一个节点可以启动多个Executor,每一个Executor可以执行多个task任务。

cache:spark提供了对rdd不同级别的缓存策略,分别可以缓存到内存,磁盘,外部分布式内存存储系统Tachyon等。

Application:提交一个作业就是一个Application,一个Application只有一个spark context。

Job:rdd执行Action操作就会生成一个job。

Task:spark运行的基本单位,负责处理rdd计算逻辑。

Stage:DAGScheduler将job划分为多个stage,stage划分界限是shuffle的产生,shuffle标志着上一个stage的结束和下一个stage的开始。

TaskSet:划分的stage会转换成一组相关联的任务集。

RDD(Resilient Distributed Dataset):弹性分布式数据集,可以理解为一种只读分布式多分区的数组,spark计算操作都是基于rdd进行的。

DAG(Directed Acyclic Graph):有向无环图。spark实现了DAG计算模型,DAG计算模型指将一个计算任务按照规则分解为若干子任务,这些任务之间根据逻辑关系构建成有向无环图。

三、RDD介绍

  rdd计算类型、缓存、依赖关系

四、运行模式

   Local模式、On Yarn模式

五、Shuffle详解

 

六、Spark SQL

 

七、Spark优化

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-10-01
  • 2021-12-23
  • 2021-12-18
  • 2022-02-08
猜你喜欢
  • 2022-12-23
  • 2021-05-28
  • 2022-02-19
  • 2021-12-13
  • 2021-09-20
  • 2021-07-05
  • 2022-01-15
相关资源
相似解决方案