首页 > 解决方案 > spark本地模式不尊重 spark.app.id 属性

问题描述

我们尝试使用 spark 本地模式而不是集群模式,但本地模式下的 spark 不支持 spark 属性文件中的 spark.app.id 属性。它总是使用一些内部local-<timestamp>作为应用程序 ID。我们使用脚本来管理 spark.app.id,也想使用 spark 本地模式。我们需要使用火花历史来检查火花作业。

标签: apache-spark

解决方案


从 Spark Source 你可以看到:

/**
   * A unique identifier for the Spark application.
   * Its format depends on the scheduler implementation.
   * (i.e.
   *  in case of local spark app something like 'local-1433865536131'
   *  in case of YARN something like 'application_1433865536131_34483'
   *  in case of MESOS something like 'driver-20170926223339-0001'
   * )
   */

当您提供主服务器时,local它将使用LocalSchedulerBackend哪个初始化应用程序 ID:

  private val appId = "local-" + System.currentTimeMillis

当你在集群上运行时,它会接受spark.app.id并使用它,类StandaloneSchedulerBackend和从该属性中获取它的逻辑。

希望它可以帮助你。


推荐阅读