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、数据库等外部存储。
- 运行完毕后释放所有资源。
热门推荐
液氮罐夹层是什么
佛香行业分析报告:从传统到创新的发展之路
汽车基础软件AutoSAR自学攻略(一)-低成本AutoSAR环境搭建
心学问心理教育,家校共育:家长如何与学校合作促进孩子成长
电梯井防水要求极为严格,材料选择、施工到后期维护皆要把控
不文明遛狗纠纷的法律适用与社会治理路径
孕吐怎么办?10个实用小窍门帮你轻松应对孕吐困扰
文章配图有哪些原则需要遵守?分享四个关键点
省会城市常住人口数据陆续公布:郑州人口冲上1300万
冰箱顶部可以放微波炉吗?家居摆放的最佳实践
做完微针之后需要忌口吗
如何高效进行专题目录编制?一文详解编制方法与技巧
如何在现货黄金市场中做出明智选择?这种选择需要考虑哪些因素?
左右尺脉沉细无力的原因及调理方法
冷凝换热器是如何实现热量交换的?
抑郁症患者应该如何与家人交流求助?有什么好的沟通方式?
揭秘《水浒传》中的“潘驴邓小闲”:王婆教西门庆泡妞五要素
突发心梗怎么办?医生提示:心梗急救“黄金1小时”要知道!
如何有效应对孩子校园冲突
春节食品安全小贴士:让团圆年“食”全“食”美
羊汤馆开店经营方案
女子在家用炭火烤肉和取暖,竟一氧化碳中毒,经及时救治转危为安
试论超级人工智能的标志性特征
汽车分类标准与车型选择指南
25考研MBA分数线已出,调剂“冲锋号”吹响!
代表委员热议中医药人才培养:为中医药振兴发展培养生力军
手机单扬声器和双扬声器有什么区别
董事长、总裁、CEO哪个职位大
“挽洪都于垂危,作江汉之保障”——万家岭大捷始末
小区门口适合摆摊卖什么?十种热门商品推荐