Spark

1.Spark架构设计

1.1架构设计图

1.2 相关术语名词解释

1、RDD(Resillient Distributed DataSet)

弹性分布式数据集,是对数据集在Spark存储和计算过程中的一种抽象

是一组制度,可分区的分布式数据集和

一个RDD包含多个分区Partition(相当于MapReduce中的INputSplit),分区是依照一定的规则的,将具有相同规则的属性的数据记录放在一起

横向上课切分并行计算,以分区Partition为切分后的最小存储和计算单元。

纵向上可进行内外村切换使用,即当数据在内存不足时,可以用外存磁盘来补充

2、Partition(分区)

类似宇hadoop的Split,计算是以parititon为单位进行的,提供了一种划分数据的方式

parititon的划分依据有很多,常见的有Hash分区,范围分区等,也可以自己定义的,xiangHDFS文件,划分二点方式就和Map Reduce一样,以文件的block来划分不同的partition

一个partition交给一个task去计算处理

3、算子

英文简称:Operator简称op

广义上讲:对任何函数进行某一项操作都可以认为是一个算子

通俗上讲:算子即为映射。关系,变换

MapReduce算子,主要分为两个,极为map 和reduce两个主要操作的算子,导致灵活可用性比较差。

Spark算子,分为两大类,即为Transformation和Action类,合计有80多个

4、Transformation类算子

操作是延迟计算的,也就是说从一个RDD转换生成另一个RDD的转换操作不是马上执行,需要等到有Action操作的时候才会真正触发运算

细分类:

value数据类型的Transformation算子

Key-value数据类型的Transfromation算子

5、Action算子

会触发Spark提交作业(Job),并将数据输出Spark系统

6、窄依赖

如果一父RDD的每个分区只被子RDD的一个分区使用,一对一关系

7、宽依赖

如果一个父RDD的每个分区要被子RDD的多个分区使用  一对多关系

8Application

Spark Application 的概念和MapReduce中的Job或者Yarn中的applicaiton类似,指的是用户编写的Spark应用程序,包含了一个DRiver功能的代码和分布在汲取中多个节点上运行的EXecutor代码

一般是值曾哥Spark项目从开发、测试、部署、运行的全部

9、DRiver

运行main函数并且创建SparkContext的程序

称为驱动程序,Driverprofram类似于hadoop的wordcount程序中的driver的main函数

10、Clustermanager

几群的资源管理器,在集群上获取资源的服务,如Yarn,Mesos Spark Standalone

11\WorkerNode

集群中任何一个可以运行spark应用代码的节点

12、Executor

Application运行在worker节点上的一个进程,该进程负责运行Task并且负责将数据存在内存或者磁盘上,每个Application都有各自独立专项的一批Executor

Executor即为park概念的的资源容器,类比于yarn的container容器,真正承载Task的运行与管理,以多线程的方式运行Task,更加高效快速。

13、Task

与 Hadoop中MapTask或者ReduceTask是类同

分配到Executor上的基本工作单元,执行实际的计算任务

Task 分为两类,即为 ShuffleMapTask 和 ResultTask。  ShuffleMapTask:即为 Map 任务和发生 Shuffle 的任务的操作,由 Transformation 操作组成,其输出结果是为下个阶段任务 (ResultTask)进行做准备,不是最终要输出的结果。  ResultTask:即为 Action 操作触发的 Job 作业的最后一个阶段任 务,其输出结果即为 Application 最终的输出或存储结果。

14、Job(作业) o Spark RDD 里的每个 action 的计算会生成一个 job。 o 用户提交的 Job 会提交给 DAGScheduler(Job 调度器),Job 会被分解 成 Stage 去执行,每个 Stage 由一组相同计算规则的 Task 组成,该组 Task 也称为 TaskSet,实际交由 TaskScheduler 去调度 Task 的机器执 行节点,最终完成作业的执行。 

15、Stage(阶段) o Stage 是 Job 的组成部分,每个 Job 可以包含 1 个或者多个 Stage。 o Job 切分成 Stage 是以 Shuffle 作为分隔依据,Shuffle 前是一个 Stage,Shuffle 后是一个 Stage。即为按 RDD 宽窄依赖来划分 Stage。 o 每个 Job 会被拆分很多组 Task,每组任务被称为 Stage,也可称 TaskSet,一个作业可以被分为一个或多个阶段

2.1运行模式

 2.2用户交互模式

 2spark-submit

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值