goodlucklzq

使用spark-shell  启动spark集群时的流程简析:

spark-shell->spark-submit->spark-class 

在sprk-class中根据条件会从不同的入口启动application。

 

从SparkSubmitDriverBootstrapper启动时 conf/spark-defaults.conf文件必须存在,通过修改SPARK_PRINT_LAUNCH_COMMAND的值可以查看详细的Spark Command

SparkSubmitDriverBootstrapper 主要是为了避免在脚本中处理复杂的的properties文件 。其中进行了运行环境所需的参数的配置,利用这些参数生成了command,同时开启进程 process执行命令,对于process的输入输出进行了重定向。通过配置SPARK_PRINT_LAUNCH_COMMAND环境变量可以查看生成的command。

 

SparkSubmitArguments用于解析和封装从spark-submit脚本获得参数

其中:
    getPropertiesFromFile(file: File)用于属性的配置文件
    parseOpts 解析参数
    mergeSparkProperties 根据读取的properties对未赋值的进行赋值
    checkRequiredArguments 确保必要的字段存在

 

 SparkSubmit是启动一个application的入口 主要有createLaunchEnv和launch两个方法,在launch中会通过反射调用mianclass(eg. 上如中的org.apache.spark.repl.Main),在SparkSubmit中会根据不同的clusterManger和deployMode选择不同的MainClass。

 

 

在org.apache.spark.repl.Main中的Main方法调用process生成一个新的 new Scala compiler,在这个过程中会调用SprkILoopInit.scala中的initializeSpark方法用于最终生成sc,从而在REPL中使用。

 

分类:

技术点:

相关文章:

  • 2021-10-08
  • 2021-07-10
  • 2022-01-07
  • 2021-07-13
  • 2021-11-19
  • 2021-09-10
  • 2021-06-27
  • 2021-08-07
猜你喜欢
  • 2021-11-19
  • 2022-01-09
  • 2022-01-12
  • 2021-11-09
  • 2021-11-19
相关资源
相似解决方案