Spark架构及运行流程详解
创作时间:
作者:
@小白创作中心
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、数据库等外部存储。
- 运行完毕后释放所有资源。
热门推荐
新同学,别担心!本专科生教育阶段资助政策有这些
目前最强大的 20 位 DC 角色排名:从最弱到最强
专本连读是什么文凭?是全日制的吗?揭秘专本连读套路!
MBTI量表全解析:从分数计算、使用方式到理论基础与性格分类
机器学习与数据挖掘:改变世界的智能技术
汽车里的积碳太多怎么办?怎样清理才靠谱?老司机教你一招方法
三聚氰胺板和实木颗粒板:选择最佳装修材料
人武专干是什么意思
人武专干是什么意思
如何确保C语言浮点运算精度
领导者如何提高自身的沟通技巧?
有效缓解便秘的小技巧与生活习惯建议,帮你轻松排便
如何选择适合超短期交易的股票
计算机编程中的编译器优化技术及其在提升代码执行效率中的应用
项目经理如何谈合作关系
福柯思想关键词:批判、真理、历史与主体
甜味剂大揭秘:从天然到人工,再到未来的健康选择
注意!卫生间里这种小飞虫不要随手拍死,不然后果可能很严重
网络虚拟化详解:从基础概念到VMware实战
挑战自我,锻炼身体——拳击训练让你更强大!
消费者遇到餐饮消费纠纷如何维权
被裁员的赔偿金一般怎么算?裁员赔偿n和n+1,一文全搞定!
酸奶搭配指南:从水果到甜品的创意组合
驾照类型与年龄限制,你了解多少?
心学问心理教育,压力释放:家长如何引导孩子正确处理负面情绪
生死边缘的摆渡人:急诊室的故事
口碑大反转!《哪吒2》斩获3个观影人次,背后到底有何隐情?
Excel中将内容显示为字符串的10种方法
揭秘广东GDP真相:与江苏的差距究竟有多大?
利用复利效应投资股票:如何通过复利效应增加股票投资收益