Spark:作业提交流程以及提交方式

作业提交流程

  • 编写好一个 Spark App,编译成 jar。
  • 上传到 Spark 机器,使用 spark-submit 提交作业。
  • 根据提交作业的模式启动 Driver,并请求 Cluster Manager 分配资源启动 Executor 线程。
  • Executor 启动后反向注册到 Driver 中,Driver 会分发 jar 包到各个 Executor 上。
  • Driver 上的 SparkContext 会创建 task 发送给 Executor 执行。
  • 任务执行完成,进程 kill。

作业提交的三种方式

  • 通过 local 方式提交。
  • 通过 spark-submit 脚本提交到集群。
  • 通过 Spark 提供的 API(SparkLauncher)提交到集群,这种方式可以将提交过程集成到 Spring 项目中,更加灵活。
    • 从源码来看,通过 createBuilder 方法构造 Process 对象,然后调用 spark-submit 脚本,里面还根据是否是 windows ,选择脚本。这个子进程会以阻塞的方式等待程序的运行结果。简单来看就是拼接 spark-submit 命令,并以子进程的方式启动。
    • 本质上跟 spark-submit 没有区别。

你可能感兴趣的:(spark)