1-SparkSubmit源码阅读

本文基于spark2.4.7, 梳理SparkSubmit.scala的提交应用的核心流程,流程如下图1所示,具体请阅读源码。
先从一段脚本说起,下面是一段提交spark应用的jar包的脚本

!/bin/bash

echo '数据分析模块 启动------------'
echo "PID of this script: $$"
redisHost=192.168.1.212
redisPort=6379
redisPass=xxx
redisIndex=8
intervalTime=5
brokers=192.168.1.212:9092
spark-submit --class com.my.handler.XXXDataHandler
--master spark://XMaster:7077
--deploy-mode client
--driver-memory 512m
--executor-memory 1024m
--total-executor-cores 1
--executor-cores 1
/home/hadoop/spark/mms/mms-analyze-2.0-SNAPSHOT-jar-with-dependencies.jar
redisHostredisPort redisPassredisIndex intervalTimebrokers

这个脚本调用的就是/bin目录下的spark-submit脚本

查看spark-submit文件里面有一段核心的代码,说明SparkSubmit 是脚本提交到入口,对应spark源码core包下的SparkSubmit .scala文件
exec "{SPARK_HOME}"/bin/spark-class org.apache.spark.deploy.SparkSubmit "@"

于是阅读SparkSubmit .scala文件,SparkSubmit 主要可以提交4种动作,分别是
SUBMIT 提交应用
KILL 杀死进程
REQUEST_STATUS 请求状态
PRINT_VERSION 答应版本

核心代码流程图如下图所示


图1.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容