当前位置: 首页 > 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

http://www.xdnf.cn/news/975025.html

相关文章:

  • SQL 注入:iBatis与修复
  • Charles里怎么进行断点调试
  • TripGenie:畅游济南旅行规划助手:团队工作纪实(十四)
  • 附加模块--Qt SQL模块功能及架构解析
  • SpringCloud系列 - Nacos 配置中心(二)
  • Hadoop 2.7.7 单机伪分布式安装与配置教程(JDK 8)
  • 如何设计三高架构
  • 小米玄戒O1架构深度解析(二):多核任务调度策略详解
  • 【系统设计【1】】系统设计面试方法论:从0到百万用户的需求到架构的推演
  • RPG24.设置武器伤害(二):将效果应用于目标
  • defaultdict 在python中的作用
  • 传输层协议 TCP 介绍 -- TCP协议格式,确认应答机制,超时重传机制,连接管理机制,滑动窗口,流量控制,拥塞控制,延迟应答,捎带应答
  • 告别尺寸混乱!CAD 快速看图【比例】功能精准校准,测量标注零误差
  • 批量转灰度图和调整图片大小
  • 如何在 TypeScript 中使用类型保护
  • Vim鼠标右键复制问题解决方法
  • java转PHP开发需要几步?
  • PHP基础-语法变量
  • LVS 负载均衡详解:四层转发原理与三种经典模式全面解析
  • 谈文件系统
  • Vue 中的数据代理机制
  • 中兴B860AV1.1_MSO9280_降级后开ADB-免刷机破解教程(非刷机)
  • Java面试题019:一文深入了解微服务之负载均衡Ribbon
  • Wireshark 筛选功能详解:语法与示例
  • 一些学习网站分享
  • OctoPrint公网部署如何实现?3D打印远程控制一键部署过程!
  • 《零基础读懂新能源汽车》——V2G/电池梯次利用/氢能源生态级技术拆解与商业预言
  • 智能体商业化:创建-接入-封装成小程序/网站/H5
  • PHP7+MySQL5.6 雪里开简易预约制访客管理系统V1.0
  • 深度解读云防火墙(WAF):守护网络安全的智能卫士