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

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.kler.cn/a/429505.html

相关文章:

  • Unity中实现倒计时结束后干一些事情
  • uni-app的学习
  • 【Go】Go Gin框架初识(一)
  • VUE3 VITE项目在 npm 中,关于 Vue 的常用命令有一些基础命令
  • 如何在 Linux、MacOS 以及 Windows 中打开控制面板
  • 基于ESP8266 wifimanager实现WiFi配置及天气显示
  • 【源码解读】SpringMMVC执行流程
  • 教程|使用Conda安装AlphaFold3-个人记录以及遇到的问题
  • CLIP论文提炼与代码实战
  • node.js 环境配置
  • leetcode207:课程表
  • C#的基本类型,一篇很基础的文章
  • NLP-实体识别
  • Linux,如何要定位并删除占用磁盘空间的大文件?
  • 换一个ip地址是什么意思?换一个网络ip地址会变吗
  • AI如何让PPT制作变得轻松与智能?用一键生成ppt!
  • HTML DOM API
  • MFC中如何创建一个非模态对话框
  • TEA系列例题
  • 开源轻量级文件分享服务Go File本地Docker部署与远程访问
  • 使用docker-compose安装Milvus向量数据库及Attu可视化连接工具
  • 物理学:什么是核聚变?
  • .Net学习
  • el-dialog修改其样式不生效加deep也没用
  • 从零用java实现 小红书 springboot vue uniapp (1)
  • 探索数据确权、隐私保护、安全共享等方面的挑战与解决方案