【问题标题】:How to run multiple on demand jobs on same spark context如何在同一个 Spark 上下文中运行多个按需作业
【发布时间】:2017-02-07 13:31:42
【问题描述】:

我想使用相同的 spark 上下文按需运行不同的作业,但我不知道我该怎么做。

我尝试获取当前上下文,但似乎它创建了一个新的火花上下文(带有新的执行器)。

我调用 spark-submit 来添加新工作。

我在 Amazon EMR 上运行代码,使用 yarn 作为资源管理器。

我的代码:

val sparkContext = SparkContext.getOrCreate()
val content = 1 to 40000
val result = sparkContext.parallelize(content, 5)
result.map(value => value.toString).foreach(loop)

def loop(x: String): Unit = {
   for (a <- 1 to 30000000) {

   }
}

火花提交:

spark-submit --executor-cores 1 \
             --executor-memory 1g \
             --driver-memory 1g \
             --master yarn \
             --deploy-mode cluster \
             --conf spark.dynamicAllocation.enabled=true \
             --conf spark.shuffle.service.enabled=true \
             --conf spark.dynamicAllocation.minExecutors=1 \
             --conf spark.dynamicAllocation.maxExecutors=3 \
             --conf spark.dynamicAllocation.initialExecutors=3 \
             --conf spark.executor.instances=3 \

如果我运行两次 spark-submit 它会创建 6 个执行程序,但我想在同一个 spark 应用程序上运行所有这些作业。

如何实现向现有 Spark 应用程序添加作业?

我读到了 JobServer(https://github.com/spark-jobserver/spark-jobserver) 实现了我想做的事情,但我不明白他们是如何做到的。

【问题讨论】:

    标签: apache-spark spark-jobserver


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      相关资源
      最近更新 更多