2.3 Spark运行架构与原理

这篇具有很好参考价值的文章主要介绍了2.3 Spark运行架构与原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基本概念
(一)Executor(执行器)
在集群工作节点上为某个应用启动的工作进程,该进程负责运行计算任务,并为应用程序存储数据。
(二)Task(任务)
运行main()方法并创建SparkContext的进程。
(三)Job(作业)
一个并行计算作业,由一组任务组成,并由Spark的行动算子(如:save、collect)触发启动。
(四)Stage(阶段)
每个Job可划分为更小的Task集合,每组任务被称为Stage。
二、Spark集群运行架构
Spark运行架构主要由SparkContext、Cluster Manager和Worker组成,其中Cluster Manager负责整个集群的统一资源管理,Worker节点中的Executor是应用执行的主要进程,内部含有多个Task线程以及内存空间,通过下图深入了解Spark运行基本流程。

Spark有多种运行模式,可以运行在一台机器上,称为本地(单机)模式,也可以以YARN或Mesos作为底层资源调度系统以分布式的方式在集群中运行,称为Spark On YARN模式,还可以使用Spark自带的资源调度系统,称为Spark Standalone模式。
本地模式通过多线程模拟分布式计算,通常用于对应用程序的简单测试。本地模式在提交应用程序后,将会在本地生成一个名为SparkSubmit的进程,该进程既负责程序的提交,又负责任务的分配、执行和监控等。
三、Spark运行基本流程
Spark应用在集群上作为独立的进程组来运行,具体运行流程如下图所示

步骤1、注册并申请资源
当一个Spark应用被提交时,根据提交参数创建Driver进程,Driver进程初始化SparkContext对象,由SparkContext负责和Cluster Manager的通信以及资源的申请、任务的分配和监控等。
步骤2、分配资源
Driver进程向Cluster Manager申请资源,Cluster Manager接收到Application的注册请求后,会使用自己的资源调度算法,在Spark集群的Worker节点上,通知Worker为应用启动多个Executor。
步骤3、资源反馈
Executor创建后,会向Cluster Manager进行资源及状态的反馈,便于Cluster Manager对Executor进行状态监控,如果监控到Executor失败,则会立刻重新创建。
步骤4、Executor发现注册
Executor会向SparkContext反向注册申请Task。
步骤5、提交Task
Task Scheduler将Task发送给Worker进程中的Executor运行并提供应用程序代码。
步骤6、注销
当程序执行完毕后写入数据,Driver向Cluster Manager注销申请的资源。文章来源地址https://www.toymoban.com/news/detail-491012.html

到了这里,关于2.3 Spark运行架构与原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spark Executor端日志打印的方法

    大数据平台采用yarn client模式提交spark 任务,并且多个离线Spark作业共用一个Driver,好处便在于——节省提交任务的时间。但同时也加大了运维工作的难度,因为任务日志打印到同一个文件中。 为了区分开各个业务流程的日志,平台引入了log4j2 RoutingAppender,配置如下所示:

    2023年04月22日
    浏览(34)
  • 四, Spark运行架构

    Spark框架的核心是一个计算引擎, 整体来说, 它采用了 主-从master-slave 的结构 下图是Spark执行时的基本结构, Driver 表示master: 负责管理整个集群中的作业任务调度 Executor 是slave: 负责实际执行任务 Spark Apllication的运行架构由两部分组成: Driver program(SparkContext) 和 Excutor , Spark Appli

    2023年04月09日
    浏览(34)
  • Spark运行架构

    Spark 是用于大规模数据处理的统一分析引擎。 可以对结构化、半结构化、非结构化等各种类型的数据数据结构进行自定义计算。 也支持Python、Java、Scala、R以及SQL语言去开发应用程序计算数据。 Spark借鉴了MapReduce思想发展而来,保留了其分布式并行计算得优点并改进了其明显

    2024年02月14日
    浏览(33)
  • Spark内存资源分配——spark.executor.memory等参数的设置方法

    基于论坛上一些关于spark内存设置的文章,我对一个项目中实际运行的任务进行了内存参数分析和优化。如果要了解更多详细设置原理,可见文末的参考文章链接。 已知内存分配存在通过用户提交的参数设置进行静态分配,和yarn进行动态分配两种,所以本文对两种状况都根据

    2023年04月13日
    浏览(112)
  • Spark六:Spark 底层执行原理SparkContext、DAG、TaskScheduler

    学习Spark运行流程 学习链接:https://mp.weixin.qq.com/s/caCk3mM5iXy0FaXCLkDwYQ 流程: SparkContext向管理器注册并向资源管理器申请运行Executor 资源管理器分配Executor,然后资源管理器启动Executor Executor发送心跳至资源管理器 SparkContext构建DAG有向无环图 将DAG分解成Stage(TaskSet) 把Stage发送给

    2024年02月01日
    浏览(36)
  • 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

    视频地址: 尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】 尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程、案例实操)】 尚硅谷大数据技术Spark教程-笔记03【SparkSQL(概述、核心编程、

    2023年04月21日
    浏览(46)
  • Mybatis执行器(Executor)

    Executor Executor是MyBatis的核心接口之一,其中定义了数据库操作的基本方法。在实际应用中经常涉及的SqlSession接口的功能,都是基于Executor接口实现的。 BaseExecutor BaseExecutor是一个实现了Executor接口的抽象类,它实现了Executor 接口的大部分方法。BaseExecutor 中主要提供了缓存管理和

    2024年04月16日
    浏览(31)
  • 架构基本概念和架构本质

    在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自

    2023年04月09日
    浏览(36)
  • Spark中的Driver、Executor、Stage、TaskSet、DAGScheduler等介绍

    工作流程: Driver 创建 SparkSession 并将应用程序转化为执行计划,将作业划分为多个 Stage,并创建相应的 TaskSet。 Driver 将 TaskSet 发送给 TaskScheduler 进行调度和执行。 TaskScheduler 根据资源情况将任务分发给可用的 Executor 进程执行。 Executor 加载数据并执行任务的操作,将计算结果

    2024年02月04日
    浏览(43)
  • spark on yarn 的 executor、cores、driver 作用及配置

    参数意义 spark on yarn 的常用提交命令如下: num-executors 指要使用的 executor 的数量。 executor-memory 指每个 executor 分配的内存大小。 executor-cores 指每个 executor 的分配的 cpu core 数量。 driver-memory 指 driver 分配的内存大小。 提交的应用程序在 AM 中运行起来就是一个 driver,它构建

    2023年04月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包