Spark架构及运行流程详解
创作时间:
2025-03-21 11:31:32
作者:
@小白创作中心
Spark架构及运行流程详解
引用
CSDN
1.
https://blog.csdn.net/qq_14815605/article/details/144245024
Spark是一种广泛使用的分布式计算框架,其架构设计和运行流程对于理解大数据处理和分析至关重要。本文将详细介绍Spark的核心组件及其运行机制。
Spark架构图
- Driver:
- 解析用户的应用程序代码,转化为作业(job)。
- 创建SparkContext上下文对象,其负责与资源管理器(ClusterManager)通信,进行资源的申请、任务的分配和监控等。
- 跟踪Executor的执行情况。
- 可通过UI界面查询运行情况。
- Cluster Manager:
- Cluster Manager负责管理集群资源的分配。常用的Cluster Manager有Standalone模式、YARN和Mesos。
- 它负责从集群中的节点上获取计算资源并监控资源使用情况。
- Executors:
- Executors是实际执行任务的工作进程,运行在集群节点上。
- 每个Executor负责执行任务并存储数据。
- 向Driver节点注册并反馈任务执行状态。
- Tasks:
- 运行在Executor上的最小计算单元。
Spark运行流程图
当执行一个Spark Application时,整个过程如下:
- Driver初始化:
- 应用程序的main函数由Driver执行,Driver创建一个SparkContext。
- SparkContext负责与集群管理器通信,申请资源并协调任务的分配和监控。
- 资源申请与Executor启动:
- SparkContext向集群管理器注册并申请资源,具体来说,申请运行Executor的计算资源。
- 集群管理器根据资源情况为Executor分配资源,并启动相应的Executor进程。
- 启动的Executor会定期向集群管理器汇报自己的运行状态。
- DAG图构建与任务调度:
- SparkContext根据程序中的RDD依赖关系构建一个DAG(有向无环图)图。
- DAG图提交给DAGScheduler进行解析,DAGScheduler将图分解成多个Stage。
- 每个Stage由多个任务组成,这些任务被打包成TaskSet,然后提交给TaskScheduler进行调度。
- 任务执行与结果返回:
- TaskScheduler将任务分发到Executor执行,同时SparkContext将应用程序代码发送给Executor。
- 任务执行结束后,Executor将计算结果返回给Driver,或将结果写入HDFS、数据库等外部存储。
- 运行完毕后释放所有资源。
热门推荐
股权代持协议是否合法?详解股权代持的法律与财务处理
守好南海文化遗产保护传承的主阵地
蝶变:王采玉,一个培养出了近代中国黄埔掌门人的不凡女人
不要在铁路附近飞无人机!广西通报16起违反铁路安全法规典型案例
健康新知:水果虽好,切勿贪食
全飞秒手术后是否需要继续戴墨镜?专业医生这样建议
八字命理中的配偶特征与财富预测
火参果的多种美味吃法与营养价值
隐形牙套和传统矫治器相比有什么优缺点?
两颗门牙突出是龅牙吗?原因分析与解决方案
矢量图格式有几种?5大主流格式一网打尽
长平之战遗址探秘:考古发现揭示历史真相
变道不打转向灯:你以为的小动作,可能坑掉3分+300元
非法放贷如何举报?银监局是最佳途径
古代娘子关:巾帼英雄的传世之作
朱炳仁:一封信让大运河申遗走上“高速路”
日出即景作文课件
朱姓:中国大姓,千年传承,人口1800多万,朱姓宗亲集合!
小型汽车年度检验法律指南:如何顺利通过车辆年审
婚礼的项目管理怎么做
在上海换单位后社保应如何处理?这种情况下社保转移的注意事项有哪些?
个人社保异地转入怎么操作?
孕早期能否吃杨桃?孕期杨桃的益处及正确吃法
孟繁华:学者小说如何处理虚构与现实的互文
催旺桃花运的方法 如何催生桃花运
反刍思维:一个不断循环的思维怪圈
网络视频监控在公共安全中的应用案例
报考公务员需要什么学历?如何选择合适岗位?
逍遥丸、加味逍遥丸、丹栀逍遥丸:傻傻分不清?一文看懂!
“逍遥丸”走红,专家这样说……