Spark的基本知识

临近年关将spark近来所学整理一下,若有不足请指正。一、什么是Spark?Spark是由加州大学伯克利分校AMP实验室开源的分布式大规模数据处理通用引擎,具有高吞吐,低延时,通用易扩展,高容错等特点。Spark内部提供了丰富的开发库、提供了多种运行模式,Spark函数式编程语言在Scala中实现。二、Spark的架构?Spark架构示意图:                ...
摘要由CSDN通过智能技术生成

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

一、什么是Spark?

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

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

二、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介绍

  缓存、依赖关系

(1)计算类型

在Spark中RDD提供Transformation和Action两种计算类型。Transformation操作非常丰富,采用延迟执行的方式,在逻辑上定义了RDD的依赖关系和计算逻辑,但并不会真正触发执行动作,只有等到Action操作才会真正触发执行操作。Action操作用于最终结果的输出。

从HDFS文件生成Spark RDD,经过map,join等多次Transformation操作,最终调用saveAsTextFile Action操作将结果集输出到HDFS并以文件形式保存。RDD的流转过程如下图:

                  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值