spark-submit解读

本文基于spark1.6-CDH5.7.2讨论

当执行spark-submit时,会产出如下操作:
1、设置HADOOP_HOME=/opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.2.p0.18/lib/hadoop
2、检测java版本、javalibs、classpath、monitor-service
3、调用/opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.2.p0.18/bin/spark-submit

image.png

紧接着会进行下面的操作:
4、设置SPARK_HOME=/opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.2.p0.18/lib/spark/
5、调用spark-class脚本,并传入参数org.apache.spark.deploy.SparkSubmit "$@"


image.png

6、调用load-spark-env.sh,检查SPARK_HOME,设置SPARK_SCALA_VERSION
7、调用/opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.2.p0.18/lib/spark/conf/spark-env.sh脚本,这里会加载许多的环境变量,包括在构建driver启动命令的classpath时的HADOOP_CONF_DIR、YARN_CONF_DIR、SPARK_DIST_CLASSPATH、HIVE_CONF_DIR、PYTHON_HOME
7、检查java是否可用
8、设置ASSEMBLY_DIR、SPARK_ASSEMBLY_JAR、LAUNCH_CLASSPATH(这将是启动spark launcher时的classpath)
9、执行org.apache.spark.launcher.Main方法


image.png

10、org.apache.spark.launcher.Main会构建一个jvm启动命令,用以启动spark driver。

后续将介绍launcher.Main

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容