Spark运行模式概述

网友投稿 492 2022-05-30

Spark编程模型回顾

Spark编程模型几大要素

● Driver Program

● 输入-Transformation-Action

● 缓存

● 共享变量

RDD的五大特征

● 分区--- partitions

● 依赖--- dependencies()

● 计算函数--- computer(p,context)

● 分区策略(Pair RDD)-- partitioner()

● 本地性策略--- preferredLocations(p)

Spark基本运行流程

Application program的组成

● Job : 包含多个Task 组成的并行计算,跟Spark action对应。

● Stage : Job 的调度单位,对应于TaskSet 。

● TaskSet :一组关联的、相互之间没有shuffle 依赖关系的任务组成的任务集。

● Task : 被送到某个executor 上的工作单元

运行流程概述:

具体流程(以standalone模式为例):

任务调度:

DAGScheduler

● 构建Stage—碰到shuffle就split

● 记录哪个RDD 或者Stage 输出被物化

● 重新提交shuffle 输出丢失的stage

● 将Taskset 传给底层调度器

● 本地性策略--- preferredLocations(p)

1.spark-cluster TaskScheduler

2.yarn-cluster YarnClusterScheduler

3.yarn-client YarnClientClusterScheduler

TaskScheduler

● 为每一个TaskSet 构建一个TaskSetManager 实例管理这个TaskSet 的生命周期

● 数据本地性决定每个Task 最佳位置(process-local, node-local, rack-local and then and any

Spark运行模式概述

● 提交taskset( 一组task) 到集群运行并监控

● 推测执行,碰到straggle 任务放到别的节点上重试

● 出现shuffle 输出lost 要报告fetch failed 错误

ScheduleBacked

● 实现与底层资源调度系统的交互(YARN,mesos等)

● 配合TaskScheduler实现具体任务执行所需的资源分配(核心接口receiveOffers)

详细过程:

实例分析

实例解析

val lines = ssc.textFile(args(1)) // 输入

val words = lines.flatMap(x =>x.split(" "))

words.cache() // 缓存

val wordCounts = words.map(x =>(x, 1) )

val red = wordCounts.reduceByKey( (a,b)=>{a + b} , 8)

red.saveAsTextFile(“/root/Desktop/out” , 8) // 行动

Spark运行模式简介

Spark运行模式列表

spark

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《大话华为云OBS+IAM权限控制》连载 (八):“IAM项目”实现企业云资源的区域性物理隔离,用以区分全局级和项目级服务
下一篇:go开源项目filebrowser
相关文章