Spark运行方式

本文介绍了Spark Application的运行环境搭建,从启动SparkContext开始,详细阐述了Spark与资源管理器(如Standalone, Mesos, Yarn)交互的过程,Executor如何申请和运行Task,以及Spark的DAG图和Stage分解。重点提及了Spark的运行特点,包括executor的持久化、Application间的隔离、资源管理的灵活性以及Client与Executor的位置要求。此外,还提到了Task的数据本地性和推测执行优化策略。" 132821578,19687574,使用DCMTK构建VR和IOD检查器,"['医学影像', ' DICOM', 'VR编程', 'IOD检查', 'C++库']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是Spark运行方式图解

  1. 构建Spark Application的运行环境,启动SparkContext
  2. SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动standaloneExecutorbackend
  3. Executor向SparkContext申请Task
  4. SparkContext将应用程序分发给Executor
  5. SparkContext构建成DAG图,将DAG图分解成Stage、将Taskset发送给Task Scheduler,最后由Task Scheduler将Task发送给Executor运行
  6. Task在Executor上运行,运行完释放所有资源

Spark运行特点

  1. 每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行Task。这种Application隔离机制是有优势的,无论是从调度角度看(每个Driver调度他自己的任务),还是从运行角度看(来自不同ApplicationTask运行在不同JVM中),当然这样意味着Spark Application不能跨应用程序共享数据,除非将数据写入外部存储系统
  2. Spark与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了
  3. 提交SparkContext的Client应该靠近Worker节点(运行Executor的节点),最好是在同一个Rack里,因为Spark Application运行过程中SparkContextExecutor之间有大量的信息交换
  4. Task采用了数据本地性和推测执行的优化机制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一名程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值