Spark On Yarn的两种运行模式

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

Spark On Yarn两种部署模式介绍

  • Spark On YARN是有两种运行模式:Cluster模式、Client模式
    • Cluster模式:Driver运行在YARN容器内部,和ApplicationMaster在同一个容器内。
    • Client模式即:Driver运行在客户端进程中,比如Driver运行在spark-submit程序的进程中。

Client模式

Client模式详细流程

  • YARN Client模式下,Driver在任务提交的本地机器上运行:
    1. Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯申请启动ApplicationMaster。
    2. 随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster的功能相当于一个ExecutorLaucher,只负责向ResourceManager申请Executor内存。
    3. ResourceManager接到ApplicationMaster的资源申请后会分配Container,然后ApplicationMaster在资源分配指定的NodeManager上启动Executor进程。
    4. Executor进程启动后会向Driver反向注册,Executor全部注册完成后Driver开始执行main函数。
    5. 之后执行到Action算子时,触发一个Job,并根据宽依赖开始划分Stage,每个Stage生成对应的TaskSet,之后将Task分发到各个Executor上执行。

Spark On Yarn的两种运行模式

Client模式部署测试

  • spark-sumbit提交程序为例,命令如下
bin/spark-submit --master yarn \
> --deploy-mode client \
> --driver-memory 512m \
> --executor-memory 512m \
> --num-executors 3 \
> --total-executor-cores 3 \
> /export/server/spark-3.2.0/examples/src/main/python/pi.py 100

Spark On Yarn的两种运行模式

  • 执行完成之后可以再yarn界面中查看
    Spark On Yarn的两种运行模式
  • 因为任务提交完成之后我们打开spark4040查看,所以我们需要再jobhistory中查看spark job的运行信息,点击即可进入查看。
    Spark On Yarn的两种运行模式
  • 点击Executors之后可以看到以下信息,Executor有三个(之前命令设定的),而driver没有日志,是因为driver根本没有运行在yarn集群容器中,而是运行到了spark-submit所执行的客户端中。
    Spark On Yarn的两种运行模式

Cluster模式

Cluster模式详细流程

  • 在YARN Cluster模式下,Driver运行在NodeManager Contanier中,此时Driver与AppMaster合为一体:
    1. 任务提交后会和ResourceManager通讯申请启动ApplicationMaster。
    2. 随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster就是Driver。
    3. Driver启动后向ResourceManager申请Executor内存,ResourceManager接到ApplicationMaster的资源申请后会分配Container,然后在合适的NodeManager上启动Executor进程。
    4. Executor进程启动后会向Driver反向注册。
    5. Executor全部注册完成后Driver开始执行main函数,之后执行到Action算子时,触发一个job,并根据宽依赖开始划分stage,每个stage生成对应的taskSet,之后将task分发到各个Executor上执行。

Spark On Yarn的两种运行模式

Cluster模式部署测试

  • spark-sumbit提交程序为例,命令如下
bin/spark-submit --master yarn \
> --deploy-mode cluster \
> --driver-memory 512m \
> --executor-memory 512m \
> --num-executors 3 \
> --total-executor-cores 3 \
> /export/server/spark-3.2.0/examples/src/main/python/pi.py 100
  • 结果并没有展示出来
    Spark On Yarn的两种运行模式
    Spark On Yarn的两种运行模式
  • 按照之前的方法在进入jobhistory页面中的Executors去查找。因为Driver在cluster模式下运行在容器的内部了,被容器所控制,所以只能在yarn的容器中去查看结果输出。
    Spark On Yarn的两种运行模式
    Spark On Yarn的两种运行模式
    Spark On Yarn的两种运行模式
  • 同样我们在yarn界面中点击改程序,然后点击下方的logs也能查看到输出结果:
  • Spark On Yarn的两种运行模式

Spark On Yarn的两种运行模式文章来源地址https://www.toymoban.com/news/detail-433348.html

Spark On Yarn两种模式的总结

  • 两种模式的区别
Cluster Yarn
Driver运行位置 YARN容器内 客户端进程
通讯效率
日志查看 日志输出在容器内,查看不方便 日志输出在客户端中,查看方便
生产环境可用性 推荐 不推荐
稳定性 稳定 受客户端进程影响,不稳定
  • Client模式和Cluster模式最最本质的区别是Driver程序运行地点:
    • Client模式(测试开发环境):
      • Driver运行在Client上,和集群的通信成本高。
      • Driver输出结果会在客户端显示。
    • Cluster模式(生产环境):
      • Driver程序在YARN集群中,和集群的通信成本低。
      • Driver输出结果不能在客户端显示。
      • Driver运行ApplicattionMaster这个节点上,由Yarn管理,如果出现问题,yarn会重启ApplicattionMaster(Driver)。

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

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

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

相关文章

  • Spark on Yarn集群模式搭建及测试

    🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 点击传送:大数据学习专栏 持续更新中,感谢各位前辈朋友们支持学习~ Apache Spark是一个快速的、通用的大数据处理框架,它支持在各种环境中进行分布式数据处理和分析。在Yarn集群模式下搭建Spark环境可以充分利用Hadoop的资源

    2024年02月11日
    浏览(46)
  • 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实战】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单机伪分布式环境搭建、完全分布式环境搭建、Spark-on-yarn模式搭建

    搭建Spark需要先配置好scala环境。三种Spark环境搭建互不关联,都是从零开始搭建。 如果将文章中的配置文件修改内容复制粘贴的话,所有配置文件添加的内容后面的注释记得删除,可能会报错。保险一点删除最好。 上传安装包解压并重命名 rz上传 如果没有安装rz可以使用命

    2024年02月06日
    浏览(83)
  • flink on yarn集群部署模式

    介绍 YARN 上部署的过程是:客户端把 Flink 应用提交给 Yarn 的ResourceManager, Yarn 的 ResourceManager 会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配TaskManager 资源。

    2024年01月23日
    浏览(43)
  • Apache Flink连载(二十):Flink On Yarn运行 - Yarn Per-Job模式(弃用)

     🏡 个人主页:IT贫道-CSDN博客  🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~  🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. 任务提交命令 2. 任务提交流程

    2024年01月20日
    浏览(41)
  • Docker:容器的两种运行模式(Foreground、Detached)

    Docker容器进程有两种运行模式,通俗理解如下:        后台模式就是在后台运行,不会让当前进程卡主,你可以做其他事情。        前台模式是在前台运行,会导致当前卡住,并输出日志至当前控制台。 docker run ... 或 docker run -d=false ... 注意,只有在前台模式下,才有

    2024年01月21日
    浏览(36)
  • IDEA部署项目到tomcat运行成功但是页面404的两种原因

    当时我遇到的问题就是明明部署成功的项目却连index.jsp都访问不了报404。在网上搜索了很多的答案都没有解决。直到后面我才发现是我部署在tomcat中的项目有问题,如图 正确的操作应该是部署该项目的War包而不是直接将这个项目直接放到Tomcat中的deployment中去。 而WAR包需要在

    2024年02月11日
    浏览(47)
  • 详解ASP.NET Core 在 IIS 下的两种部署模式

    KestrelServer最大的优势体现在它的跨平台的能力,如果ASP.NET CORE应用只需要部署在Windows环境下,IIS也是不错的选择。ASP.NET CORE应用针对IIS具有两种部署模式,它们都依赖于一个IIS针对ASP.NET CORE Core的扩展模块。 IIS其实也是按照管道的方式来处理请求的,但是IIS管道和ASP.NET CO

    2024年02月10日
    浏览(50)
  • Flink on k8s容器日志生成原理及与Yarn部署时的日志生成模式对比

    最近需要将flink由原先部署到Yarn集群切换到kubernetes集群,在切换之后需要熟悉flink on k8s的运行模式。在使用过程中针对日志模块发现,在k8s的容器中,flink的系统日志只有jobmanager.log/taskmanager.log 两个,而当时在使用Yarn集群部署时,flink的日志会有多个,比如:jobmanager.log、jo

    2024年02月07日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包