Spark on Yarn模式下执行过程

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

在Spark on YARN模式下,整个执行过程步骤:

Driver Application启动

Driver Application启动:用户提交的Spark Application在YARN上启动一个ApplicationMaster(即Driver Application)进程来管理整个应用程序的生命周期,并向ResourceManager请求资源。

获得资源

Driver Application向ResourceManager请求可用的资源(CPU核数、内存等),并等待接收到资源的响应。

启动Executor Container

一旦Driver Application获得了足够的资源,它会将这些资源划分为多个容器(Containers),每个容器都是一个独立的YARN任务,负责运行一个Spark Executor进程。然后,Driver Application会将每个容器的启动命令发送给NodeManager,让其启动容器。

Executor进程启动

NodeManager接收到Driver Application发送的启动命令后,会启动Executor容器进程,并将Executor启动命令传递给该进程。此时,Executor进程会调用YarnCoarseGrainedExecutorBackend的onStart()方法,初始化ExecutorBackend,并启动ActorSystem和Actor。

Executor注册

在Executor容器进程启动后,Executor会向Driver Application报告其注册信息,包括Executor ID、主机名、端口号等。Driver Application会记录每个Executor的信息,并将任务分配给它们。

接收任务

Driver Application向Executor发送需要执行的Spark任务,每个任务都是一个RDD上的操作序列。

任务执行

Executor收到任务后,在自己的线程池中执行,通过调用RDD的一些计算方法来计算数据并将结果返回给Driver Application。

报告状态

在任务运行期间,Executor会定期向Driver Application报告当前的状态,例如已完成的任务数、失败的任务数等。

完成任务

当一个Executor完成所有分配给它的任务后,它会向Driver Application发送完成消息,并终止自身进程。

应用程序完成

当所有的Executor都完成了任务,Driver Application会向ResourceManager释放其占用的资源,并关闭自身进程。

Spark on YARN模式下YarnCoarseGrainedExecutorBackend的Executor backend

它负责启动和管理运行在YARN上的Spark Executor进程,并与Driver进程进行通信以接收任务并报告状态。

YarnCoarseGrainedExecutorBackend实现了CoarseGrainedExecutorBackend特质,该特质定义了Executor backend必须实现的方法。其中最重要的方法是onStart(),该方法在Executor进程启动时调用并初始化ExecutorBackend。在onStart()方法中,YarnCoarseGrainedExecutorBackend会创建一个Akka ActorSystem并启动一个Actor来处理从Driver进程发送的任务和命令。Executor进程还会向ResourceManager请求资源,并在获取资源后启动Executor容器进程。

在YarnCoarseGrainedExecutorBackend中,有几个关键类需要注意:

  • YarnAllocator:负责向ResourceManager请求资源并为Executor分配资源;

  • CoarseGrainedExecutorBackendActor:具体的Actor实现,用于处理从Driver进程发送来的消息和命令;

  • YarnContainerLauncher:负责启动和监视Executor容器进程的生命周期;

  • YarnCoarseGrainedExecutorBackendUtils:包含一些常见方法,例如解析Executor参数、设置环境变量等。

总体来说,YarnCoarseGrainedExecutorBackend的工作流程如下:

  • 调用onStart()方法初始化ExecutorBackend,并启动ActorSystem和Actor。

  • 向ResourceManager请求资源并启动Executor容器进程。

  • Executor容器进程启动后,向Driver进程报告Executor的注册信息。

  • 接收从Driver进程发送来的任务和命令,并在Actor中处理。

  • 在任务运行期间定期向Driver进程汇报当前的状态,例如已完成的任务数、失败的任务数等。

  • 当所有任务完成时,向Driver进程发送消息并终止Executor进程。

需要注意的是,YarnCoarseGrainedExecutorBackend的实现相对复杂,需要深入理解Spark和YARN的相关知识才能全面理解其源码。文章来源地址https://www.toymoban.com/news/detail-428368.html

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

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

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

相关文章

  • Spark on Yarn 最佳运行参数调优-计算方式_spark on yarn 调优 nodemanager

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月26日
    浏览(44)
  • kyuubi整合spark on yarn

    目标: 1.实现kyuubi spark on yarn 2.实现 kyuubi spark on yarn 资源的动态分配 注意:版本 kyuubi 1.8.0 、 spark 3.4.2 、hadoop 3.3.6 前置准备请看如下文章 文章 链接 hadoop一主三从安装 链接 spark on yarn 链接 官网下载地址 官方文档 修改配置文件 三千五百万 主键id单笔获取 非主键 count 测试 差

    2024年04月08日
    浏览(40)
  • 《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上

    📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。 通过了微软Azure开发人员、Azure数据工程师、Azure解决

    2024年02月03日
    浏览(55)
  • (超详细)Spark on Yarn安装配置

    1,前期准备 使用 root 用户完成相关配置,已安装配置Hadoop 及前置环境 2,spark上传解压到master服务器 3,修改环境变量  /etc/profile末尾添加下面代码 4,环境变量生效 5,运行spark-submit --version 显示如下 6,修改saprk-env.sh文件   在.../spark-3.1.1-bin-hadoop3.2/conf目录下,将下面两行

    2024年03月21日
    浏览(44)
  • Spark on YARN 部署搭建详细图文教程

    目录 一、引言  二、SparkOnYarn 本质 2.1 Spark On Yarn 的本质? 2.2 Spark On Yarn 需要啥? 三、配置 spark on yarn 环境 3.1 spark-env.sh  3.2 连接到 YARN 中 3.2.1 bin/pyspark 3.2.2 bin/spark-shell 3.2.3 bin/spark-submit (PI) 四、部署模式 DeployMode  4.1 Cluster 模式 4.2 Client 模式 4.3 两种模式的区别  4.4 测试

    2024年02月06日
    浏览(40)
  • Spark On YARN时指定Python版本

    坑很多,直接上兼容性最佳的命令,将python包上传到 hdfs 或者 file:/home/xx/ (此处无多余的 / ) 具体细节 关于 Python包 打包可以参考 https://www.jianshu.com/p/d77e16008957,https://blog.csdn.net/sgyuanshi/article/details/114648247 非官方的python,比如 anaconda的python可能会有坑 ,所以最好先用官方版本

    2023年04月18日
    浏览(42)
  • 【Spark实战】Windows环境下编译Spark2 Linux上部署Spark On Yarn

    环境准备 git-2.14.1 maven-3.9.2 jdk-1.8 scala-2.11.8 zinc-0.3.15 主下载地址 spark-2.3.4 github官方地址 编译准备 maven远程仓库使用的是阿里云的 解压源码包 spark-2.3.4.zip ,修改根模块的pom文件。主要目的是为了变更hadoop的版本号,默认是 2.6.5 。 修改 spark-2.3.4devmake-distribution.sh 文件 主要是

    2024年02月13日
    浏览(56)
  • 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日
    浏览(41)
  • 浏览器输入url后执行的整个过程(详细解析)

    这个问题也是老生常谈了,更是经常被作为面试的压轴题出现。在此稍微全面一点记录下。 检查网页重定向 URL 重定向 (也称为 URL 转发 )是一种为页面、表单或者整个 Web 站点/应用提供多个 URL 地址的技术。 当实际资源(如单个页面、表单或者整个 Web 应用)被迁移到新的

    2024年02月03日
    浏览(84)
  • hive on spark 时,executor和driver的内存设置,yarn的资源设置

    hive on spark 时,executor和driver的内存设置,yarn的资源设置。 在使用Hive on Spark时,需要进行以下三个方面的内存和资源设置: Executor的内存设置 在使用Hive on Spark时,需要根据数据量和任务复杂度等因素,合理地设置每个Executor的内存大小。通常情况下,每个Executor需要留一部分

    2024年02月16日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包