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.mfbz.cn/a/766324.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python学习速成必备知识,(20道练习题)!

基础题练习 1、打印出1-100之间的所有偶数: for num in range(1, 101):if num % 2 0:print(num) 2、打印出用户输入的字符串的长度: string input("请输入一个字符串:")print("字符串的长度为:", len(str…

PHP验证日本手机电话号码

首先,您需要了解手机号码的规格。 根据 ,手机和PHS(个人手持电话系统)可以理解为以“070”、“080”和“090”开头的11位数字。 此外,以“050”开头的11位特定IP电话号码也将包含在该目标中。 关于以“060”开头的F…

Git 基础-创建版本库 git init、添加到暂存区git add、查看状态git status、查看改动git diff

1.创建版本库 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。 在目录中执行 git init,就可以创建一个 Git 仓库了。 注意: 没事不要手动修改 .git 目录里面的文件,不然改乱了,可能就…

初识Java(复习版)

一. 什么是Java Java是一种面向对象的编程语言,和C语言有所不同,C语言是一门面向过程的语言。偏底层实现,比较注重底层的逻辑实现。不能一味的说某一种语言特别好,每一种语言都是在特定的情况下有自己的优势。 二.Java语言发展史…

Redis哨兵和集群模式

特性哨兵模式集群模式高可用性是是数据分片否是水平扩展否是配置复杂度低高管理复杂度低高多键操作支持是否(有限制) 哨兵模式 原理: Redis 哨兵模式是一种高可用性解决方案,它通过监控 Redis 主从架构,自动执行故障…

JavaSEJava8 时间日期API + 使用心得

文章目录 1. LocalDate2. LocalTime3. LocalDateTime3.1创建 LocalDateTime3.2 LocalDateTime获取方法 4. LocalDateTime转换方法4.1 LocalDateTime增加或者减少时间的方法4.2 LocalDateTime修改方法 5. Period6. Duration7. 格式转换7.1 时间日期转换为字符串7.2 字符串转换为…

怎么导出等长,差分对的走线长度?

简介 今天需要导出等长组,差分对的走线长度?这个需要怎么做呢? 差分对和等长组 先来熟悉一下等长组和差分对的概念(表现在软件上) 差分对,是一对两个网等长组,多个网络 导出各自的数据 打开…

马斯克宣布xAI将在8月份推出Grok-2大模型 预计年底推出Grok-3

在今年内,由特斯拉创始人马斯克创立的人工智能初创公司xAI将推出两款重要产品Grok-2和Grok-3。马斯克在社交平台上透露了这一消息,其中Grok-2预计在今年8月份面世,而Grok-3则计划于年底前亮相。 除此之外,马斯克还表示&#xff0c…

LLM指令微调Prompt的最佳实践(二):Prompt迭代优化

文章目录 1. 前言2. Prompt定义3. 迭代优化——以产品说明书举例3.1 产品说明书3.2 初始Prompt3.3 优化1: 添加长度限制3.4 优化2: 细节纠错3.5 优化3: 添加表格 4. 总结5. 参考 1. 前言 前情提要: 《LLM指令微调Prompt的最佳实践(一)&#…

初试总分409分,专业课143,西电821专业

非常感谢自己考研409分上岸西安电子科技大学,杭州研究院,专业课143分,跟的研梦,讲课以及答疑还是非常专业的。 821专业课课本总共有四本,都在官网考纲的参考书里写了,不过主要参考其中两本,一本…

Go GMP:并发编程实践

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

速锐得解码汽车以太网技术特点接口定义数据传输及应用

在当前的汽车工业中,随着技术的飞速发展,车载网络技术也在不断进步与更新。其中,具备以太网的车型已成为一个新兴趋势,这主要归功于车载以太网技术在车内带宽需求较高的系统上的应用,如高级驾驶辅助系统(AD…

RabbitMQ 消息传递

消息何去何从 mandatory和immediate是channel.basicPublish方法中的两个参数,他们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。RabbitMQ提供的备份交换器可以将未能被交换器路由的消息(没有绑定队列或者没有匹配的绑定)存…

java基于ssm+jsp 二手交易平台网站

1商家能模块 商家首页,在商家首页页面可以查看个人中心、商品分类管理、商品信息管理、订单信息管理、订单配送管理信息,如图1所示。 图1商家首页界面图 个人中心,用户通过个人中心可以查看用户名、用户姓名、头像、性别、手机号码、邮箱等信…

【C语言】register 关键字

在C语言中,register关键字用于提示编译器将变量尽量存储在CPU的寄存器中,而不是在内存中。这是为了提高访问速度,因为寄存器的访问速度比内存快得多。使用register关键字的变量通常是频繁使用的局部变量。 基本用法 void example() {regist…

第三届行为科学与应用心理学国际会议(BSAP2024)

会议日期:2024年9月13-15日 会议地点:马来西亚 吉隆坡 会议官网:https://www.iaast.cn/meet/home/Bx116rPM 出版检索:SSCI&SCI 【支持单位】 苏库尔IBA大学 苏库尔IBA大学.png 【大会主席】 【出版与检索】

​​​​​​​​​​​​​​Spark Standalone集群环境

目录 Spark Standalone集群环境 修改配置文件 【workers】 【spark-env.sh】 【配置spark应用日志】 【log4j.properties】 分发到其他机器 启动spark Standalone 启动方式1:集群启动和停止 启动方式2:单独启动和停止 连接集群 【spark-shel…

Librechat快速部署指南

引言 Github的开源免费程序里,Librechat作为AI对话使用,现阶段可谓是最佳选择,配合聚合API >>进行使用,能够保证成本最低,自由度最高,私密性最强,功能丰富且界面美观,如此以来…

压缩pdf文件大小,压缩pdf文件大小软件哪个好

在数字化时代,PDF文件因其卓越的跨平台兼容性和稳定性而成为工作与学习的好帮手。然而,当PDF文件体积过大时,传输和存储便成了一项挑战。别担心,本文将为你揭秘如何快速压缩PDF文件,让你的文档轻装上路! 压…

【有为己之心方能克己】

私欲会让人难受,为了自己舒服而去拔除,去除私欲小我,就可以为自己展现大我 “人不为己天诛地灭”,其实这句话不是自私自利的意思, 原意是:人如果不修为自己,不为那个真己而活,不活出…