6.3.2 Driver和Master交互原理解析
Driver和Master进行交互,Master是一个消息循环体,本章节讲解Driver消息循环体的产生过程,Drvier消息循环体生成之后,就可以与Master互相通信。
在Spark应用程序提交的时候,我们会提交一个spark-submit脚本,spark-submit脚本中直接运行了org.apache.spark.deploy.SparkSubmit这个对象。Spark-submit脚本内容如下所示。
1. #!/usr/bin/env bash
2. SPARK_HOME="$(cd "`dirname "$0"`"/..; pwd)"
3. export PYTHONHASHSEED=0
4. exec "$SPARK_HOME"/bin/spark-class org.apache.spark.deploy.SparkSubmit "$@"//运行SparkSubmit
进入到SparkSubmit中,main函数代码如下所示。
SparkSubmit.scala源码:
1. def main(args: Array[String]): Unit = {
2. //由启动main函数传入的参数构建SparkSubmitAruments对象
3. val appArgs = new SparkSubmitArguments(args