spark的运行机制
时间: 2023-08-31 10:07:33 浏览: 121
spark运行原理解析
Spark的运行机制可以总结为以下几个步骤:
1. 构建Spark Application的运行环境,即启动SparkContext。SparkContext会向资源管理器(可以是Standalone、Mesos或YARN)注册并申请运行Executor资源。\[2\]
2. 每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行tasks。这种Application隔离机制有其优势,每个Driver调度自己的任务,并且来自不同Application的Task运行在不同的JVM中。但这也意味着Spark Application不能跨应用程序共享数据,除非将数据写入到外部存储系统。\[1\]
3. TaskScheduler负责将TaskSet提交给Worker(集群)运行,并在此处分配每个Executor运行什么Task。\[2\]
4. 在TaskScheduler中,每个task描述会被序列化成二进制,并发送给对应的executor。如果二进制信息的大小超过了akkaFrameSize的限制(默认为10M减去akka留空的200K),会出错并中止整个TaskSet。此时,可以增大akka frame size来解决问题。如果二进制数据大小可接受,会将任务信息发送给executor的actor,处理LaunchTask(serializedTask)事件。\[3\]
5. Executor是Spark中的进程模型,可以适用于不同的资源管理系统。它包含一个线程池、正在运行的任务映射以及一个actor,用于接收来自SchedulerBackend的事件。\[3\]
总结起来,Spark的运行机制包括构建运行环境、分配Executor资源、提交任务给Worker运行以及Executor的处理过程。通过这些步骤,Spark能够高效地执行分布式计算任务。
#### 引用[.reference_title]
- *1* *2* *3* [Spark任务提交方式和执行流程](https://blog.csdn.net/weixin_37796929/article/details/93711780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文