关于org.apache.spark.deploy.SparkSubmitArguments
前言
这个类主要功能是从spark-submit命令行中解析并封装提交的的参数。
Github源码地址:https://github.com/apache/spark/blob/05168e725d2a17c4164ee5f9aa068801ec2454f4/core/src/main/scala/org/apache/spark/deploy/SparkSubmitArguments.scala
主要逻辑
defaultSparkProperties
载入默认属性, Spark默认属性存在于当前定义的默认文件中。
使用parse(args.asJava)
, 提取命令行提交的参数并对Spark相关属性进行设置
mergeDefaultSparkProperties()
从属性文件填充sparkProperties所含映射键值对
ignoreNonSparkProperties()
,删除sparkProperties中不以“spark”开头的键
loadEnvironmentArguments()
,使用sparkProperties映射和env变量来填充任何缺少的参数
validateArguments()
, 确保所有必要的字段都存在,该方法只有在加载所有默认值后才会被调用此方法
主要方法
mergeDefaultSparkProperties
ignoreNonSparkProperties
loadEnvironmentArguments
载入主要的spark属性,参考下表。其中
- 如果没有给出
--class
参数,请尝试依据提供的JAR包设置主类 - mastet的全局默认值为
master = Option(master).getOrElse("local[*]")
。 这些应保持最小,以避免混淆行为。 - 在YARN模式下,可以通过
SPARK_YARN_APP_NAME
设置应用名称 - 除非另有说明,否则应默认的action是SUBMIT
属性 | 获取方法 |
---|---|
master | Option(master).orElse(sparkProperties.get(“spark.master”)).orElse(env.get(“MASTER”)).orNull |