赞
踩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。