当前位置: 首页 > news >正文

Spark架构及运行流程

Spark架构图

在这里插入图片描述

  1. Driver

    • 解析用户的应用程序代码,转化为作业(job)。
    • 创建SparkContext上下文对象,其负责与资源管理器(ClusterManager)通信,进行资源的申请、任务的分配和监控等。
    • 跟踪Executor的执行情况。
    • 可通过UI界面查询运行情况。
  2. Cluster Manager

    • Cluster Manager负责管理集群资源的分配。常用的Cluster Manager有Standalone模式、YARNMesos
    • 它负责从集群中的节点上获取计算资源并监控资源使用情况。
  3. Executors

    • Executors是实际执行任务的工作进程,运行在集群节点上。
    • 每个Executor负责执行任务并存储数据。
    • 向Driver节点注册并反馈任务执行状态。
  4. Tasks

    • 运行在Executor上的最小计算单元。

Spark运行流程图

在这里插入图片描述

当执行一个Spark Application时,整个过程如下:

  1. Driver初始化

    • 应用程序的main函数由Driver执行,Driver创建一个SparkContext
    • SparkContext负责与集群管理器通信,申请资源并协调任务的分配和监控。
  2. 资源申请与Executor启动

    • SparkContext向集群管理器注册并申请资源,具体来说,申请运行Executor的计算资源。
    • 集群管理器根据资源情况为Executor分配资源,并启动相应的Executor进程。
    • 启动的Executor会定期向集群管理器汇报自己的运行状态。
  3. DAG图构建与任务调度

    • SparkContext根据程序中的RDD依赖关系构建一个**DAG(有向无环图)**图。
    • DAG图提交给DAGScheduler进行解析,DAGScheduler将图分解成多个Stage
    • 每个Stage由多个任务组成,这些任务被打包成TaskSet,然后提交给TaskScheduler进行调度。
  4. 任务执行与结果返回

    • TaskScheduler将任务分发到Executor执行,同时SparkContext将应用程序代码发送给Executor。
    • 任务执行结束后,Executor将计算结果返回给Driver,或将结果写入HDFS、数据库等外部存储。
    • 运行完毕后释放所有资源。
http://www.lryc.cn/news/500626.html

相关文章:

  • Linux安装Python2.7.5(centos自带同款)
  • 上传ssh公钥到目标服务器
  • 【LLMs】用LM Studio本地部署离线大语言模型
  • SpringBoot下类加入容器的几种方式
  • 【Mysql】忘记Root密码后如何不影响数据进行重置密码
  • 宝塔内设置redis后,项目以及RedisDesktopManager客户端连接不上!
  • 一文了解模式识别顶会ICPR 2024的研究热点与最新趋势
  • 【深度学习】深刻理解BERT
  • 一种基于通义千问prompt辅助+Qwen2.5-coder-32b+Bolt.new+v0+Cursor的无代码对话网站构建方法
  • Java版-图论-最小生成树-Kruskal算法
  • 计算机网络知识总结
  • 普通算法——欧拉筛
  • 【知识科普】DNS(域名解析服务)深入解读
  • 数据结构第一弹-数据结构在不同领域的应用
  • 如何创建基于udp的客户端和服务端
  • ThinkPHP框架审计--基础
  • Java8 CompletableFuture异步编程
  • Java的Mvc整合Swagger的knife4框架
  • 分阶段构建在复杂系统中的应用:以推荐系统为例
  • 2024年12月9日历史上的今天大事件早读
  • 快捷构建AI大模型,源码自取可直接运行
  • 怎么为开源项目做贡献提PR?
  • 如何在 JavaScript 中设置定时器?
  • 【学习路线】Java
  • [GYCTF2020]Easyphp
  • JavaScript 数组的高级用法与最佳实践
  • 通信协议 http、tcp、udp
  • Scala的隐式对象和隐式类
  • 【AIGC】2016-ACCV-即时追捕:自然环境下的自动唇音同步
  • 启智畅想集装箱箱号识别算法,2台相机即可实现较高识别率