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

Spark提交流程

bin/spark-submit

--class org.apache.spark.examples.SparkPi

--master yarn

./examples/jars/spark-examples_2.12-3.3.1.jar 10

这一句命令实际上是 启动一个Java程序 java org.apache.spark.deploy.SparkSubmit

并将命令行参数解析到这个类的对应属性上

因为master给的是yarn,所以会通过反射创建一个yarn的client客户端,连接上yarn

yarnClient会通过submitApplication向yarn提交用户的应用程序以及让yarn准备用户应用执行的环境=> yarnClient会将java ApplicationMaster传给yarn的RM,让yarn的RM在某一个NM上启动一个容器执行java ApplicationMaster,执行之后就会在当前NM节点启动一个ApplicationMaster进程

如果是集群模式,ApplicationMaster就会执行runDriver方法启动一个Driver线程通过反射执行用户应用程序的main方法(比如org.apache.spark.examples.SparkPi)

除了启动Driver线程之外,ApplicationMaster会调用registerAM方法创建AMRMClient用来实现AM和RM的交互,AM会通过AMRMClient向RM反馈用户程序的main方法已经开始执行并向RM申请Container,AM获取到Container后会遍历这些Container,在遍历的过程中会生成一个NMClient用来和Container交互,NMClient会向Container发送java Executor生成一个ExecutorBackend进程(Executor),这个Executor进程(类)内部有一个executor属性(也是一个类),这个executor属性才是真正用来计算的,而Executor进程是用来和ApplicationMaster这个进程交互的(实际是和AMMaster的Driver线程通信)。

excutor属性中有一个线程池,用来并行执行多个TASK

相关文章:

  • JAVA毕业设计227—基于SpringBoot+hadoop+spark+Vue的大数据房屋维修系统(源代码+数据库)
  • PHP:互联网时代的常青编程语言
  • C++ 中的 iostream 库:cin/cout 基本用法
  • 【JavaEE】-- HTTPS
  • windows电脑解决笔记本搜索不到wifi问题
  • 侃侃AI编程
  • javaee初阶-多线程
  • 电机专用32位MCU PY32MD310,QFN32封装,内置多功能栅极驱动器
  • 曼昆《经济学原理》第九版 第十六章垄断竞争
  • 免部署的数字人 API 调用教程:基于 wav2lip模型训练的开放API,附 PHP 代码示例
  • 大模型与人工智能
  • React Vue 编译/运行流程
  • 11. 线性表的顺序表示和实现(3)
  • 新闻类鸿蒙应用全链路测试实践:性能、兼容性与体验的深度优化
  • 【多模态/T5】[特殊字符] 为什么视频生成模型还在用T5?聊聊模型选择的学问
  • 中兴B860AV1.1江苏移动-自动降级包
  • Spring MVC完全指南 - 从入门到精通
  • 电路板的 “双面绣”:猎板双色油墨如何重塑电子制造新范式
  • 线 性 数 据 结 构 双 雄:栈 与 队 列 的 原 理、实 现 与 应 用
  • HDFS 异构存储及存储策略
  • 百度上开个网站怎么做/电子技术培训机构
  • 网站权重最高/关键词首页优化
  • 小程序app开发制作/杭州小周seo
  • java如何对网站做压力测试/重庆百度推广
  • 扬中潘杰简历/培训推广 seo
  • 做网站的公司现在还 赚钱吗6/深圳互联网营销