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

Spark on k8s 源码解析执行流程

Spark on k8s 源码解析执行流程

1.通过spark-submit脚本提交spark程序
在spark-submit脚本里面执行了SparkSubmit类的main方法
在这里插入图片描述
2.运行SparkSubmit类的main方法,解析spark参数,调用submit方法
在这里插入图片描述
3.在submit方法里调用doRunMain方法,最终调用runMain方法
在这里插入图片描述
4.在runMain方法里面获取mainClass,再去执行start方法
1、准备提交环境
在这里插入图片描述

2、获取类加载器
在这里插入图片描述
3、判断是否是sparkApplication
在这里插入图片描述

4、执行sparkApplication的start方法

在这里插入图片描述
5.在start方法里面去调用KubernetesClientApplication的start方法
在这里插入图片描述
1、获取k8s的集群域名,调用k8s的客户端,传入spark相关配置参数
在这里插入图片描述
6.调用Client的run方法,通过k8s的apiserver创建Container pod 然后在container中创建driver pod
1、创建configmap
在这里插入图片描述

2、创建driver pod
在这里插入图片描述

7 Driver的启动

上面通过KubernetesClientApplication创建driver之后,会在docker的run的时候,触发ENTRYPOINT或者CMD的命令,作为容器运行的主进程。Spark镜像的ENTRYPOINT是/opt/entrypoint.sh,driver模式下里面的内容基本就是把arg参数传递给/bin/spark-submit,然后指定以client模式再次启动一个SparkSubmit进程。

创建driver的command
在这里插入图片描述
执行driver命令的shell文件
在这里插入图片描述
启动SparkSubmit的源码,和上面分析的一样,只不过这次是以client模式提交的,所以不再会调用到org.apache.spark.deploy.k8s.submit.KubernetesClientApplication,而是直接调用–class后面的作业Class的main方法,在我们的例子中就是直接执行org.apache.spark.examples.SparkPi。

SparkContext创建过程,重点是
1、创建了TaskScheduler(taskSet的调度执行)
在这里插入图片描述

在这里插入图片描述

2、DagScheduler(根据宽窄依赖划分Stage),
3、HeartbeatReceiver(executor向driver定时发送心跳)。

http://www.lryc.cn/news/389758.html

相关文章:

  • 粤港联动,北斗高质量国际化发展的重要机遇
  • Chrome导出cookie的实战教程
  • 视频文字转语音经验笔记
  • 视频融合共享平台LntonCVS统一视频接入平台智慧安防应用方案
  • 使用Python绘制动态螺旋线:旋转动画效果
  • Symfony实战手册:PHP框架的高级应用技巧
  • TOGAF培训什么内容?参加TOGAF培训有什么好处?考试通过率多少?
  • keepalived HA nginx方案
  • 报错:pathspec ‘xxx‘ did not match any file(s) known to git
  • sed 保持空间命令之 x 的执行逻辑
  • 按位异或^
  • 《企业实战分享 · 常用运维中间件》
  • PyCharm 2024.1简介
  • 终身免费的Navicat数据库,不需要破解,官方支持
  • Spring Boot中的模板引擎选择与配置
  • 4、音视频封装格式---FLV
  • vscode 前行复制到下一行
  • 什么是文档透明加密|好用的文档透明加密软件有哪些?
  • XTDrone-固定翼无人机编队跟踪无人车-配置教程
  • 实现高性能、可扩展的实时数据采集系统:go-zero的应用与实践
  • AUTOSAR NvM模块(五)
  • 输出feign调用详细日志
  • mac编译r2frida问题解决
  • 中介者模式在金融业务中的应用及其框架实现
  • javaSE期末练习题
  • Linux文件数据写入
  • vue2 中如何使用 vuedraggable 库实现拖拽功能
  • 0基础学C++ | 第13天 | 基础知识 | 类 | 对象
  • Java | Leetcode Java题解之第212题单词搜索II
  • Flink面试题总结