Spark运行架构及流程 第1关:Spark运行架构及流程检测

25 篇文章 5 订阅

Spark运行架构

基本概念

  • Application:用户编写的Spark应用程序,包含一个Driver和多个Executor

  • DriverSpark中的Driver即运行上述Applicationmain函数并创建SparkContext,创建SparkContext的目的是为了准备Spark应用程序的运行环境,在Spark中有SparkContext负责与 ClusterManager通信,进行资源申请、任务的分配和监控等,当Executor部分运行完毕后,Driver同时负责将SparkContext关闭。

  • Executor:是运行在工作节点WorkerNode的一个进程,负责运行 Task

  • RDD:弹性分布式数据集,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。

  • DAG:有向无环图,反映RDD之间的依赖关系。

  • Task:运行在Executor上的工作单元。

  • Job:一个Job包含多个RDD及作用于相应RDD上的各种操作。

  • Stage:是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为Stage,或者也被称为TaskSet,代表一组关联的,相互之间没有Shuffle依赖关系的任务组成的任务集。

  • Cluster Manager:指的是在集群上获取资源的外部服务。目前有三种类型:

  1. StandalonSpark原生的资源管理,由Master负责资源的分配;
  2. Apache Mesos:与Hadoop MR兼容性良好的一种资源调度框架;
  3. Hadoop Yarn:主要是指Yarn中的ResourceManager

Spark运行流程:

  1. 构建Spark Application的运行环境,启动SparkContext
  2. SparkContext向资源管理器(可以是StandaloneMesosYarn)申请运行Executor资源;
  3. ExecutorSparkContext申请Task
  4. SparkContext构建DAG图,将DAG图分解成Stage 、并将 Stage封装成Taskset发送给Task Scheduler,最后由Task SchedulerTask发送给Executor运行;
  5. TaskExecutor上运行,运行完释放所有资源。
1、以下层级关系正确的是?a

A、Job->Stage->Task

B、Stage->Task->Job

C、Task->Job->Stage

D、Job->Task->Stage

2、以下哪项可以反映RDD之间的依赖关系 b

A、Driver

B、DAG

C、Stage

D、Cluster Manager

3、Stage的task数量由什么决定 a

A、Partition

B、Job

C、Stage

D、TaskScheduler

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值