写点什么

Java 命令行参数解析方式探索(四):Spark

作者:冰心的小屋
  • 2023-07-28
    北京
  • 本文字数:628 字

    阅读完需:约 2 分钟

Java 命令行参数解析方式探索(四):Spark
./bin/spark-submit \--name "Hello Spark" \--master yarn \--deploy-mode cluster \--driver-memory 8g \--num-executors 4 \--executor-memory 16g \--executor-cores 2  \......
复制代码

我们在提交 Spark 任务时通常会设置任务名称、master 地址、driver 资源和 executor 资源等参数,除此之外还有很多,那么 Spark 是如何一步步解析这些命令行参数呢?让我们一起探索。

1. 主要流程


  1. 提交 Spark 任务执行的是 spark-submit shell 脚本,脚本中设定了启动类 org.apache.spark.deploy.SparkSubmit,委托 spark-class shell 脚本执行;

  2. spark-class shell 脚本首先会加载 Spark 环境变量,接着构建运行时依赖的 jar 包,构建完毕执行 Java 命令,调用 org.apache.spark.deploy.SparkSubmit 的 main 方法;

  3. org.apache.spark.deploy.SparkSubmit 虽然是一个单例对象,执行 main 方法时却又创建了一个新的自身类型实例,调用其 doSubmit 执行操作,doSubmit 方法内委托 SparkSubmitArguments 类来处理命令行参数;

  4. 在 SparkSubmitArguments 的构造函数中会调用父类 SparkSubmitOptionParser 的 parse 方法来解析实际的命令行参数。


最终经过上面的处理流程完成命令行参数的解析工作,接下来会着重介绍 SparkSubmitOptionParser 类的 parse 方法的工作原理。

2. SparkSubmitOptionParser 内部实现

本系列文章目录:

Java 命令行参数解析方式探索(一):原始实现

Java 命令行参数解析方式探索(二):Apache Commons CLI

Java 命令行参数解析方式探索(三):Picocli


发布于: 刚刚阅读数: 6
用户头像

分享技术上的点点滴滴! 2013-08-06 加入

一杯咖啡,一首老歌,一段代码,欢迎做客冰屋。

评论

发布
暂无评论
Java 命令行参数解析方式探索(四):Spark_Java_冰心的小屋_InfoQ写作社区