2017-02-06 9 views
1

Я хочу запускать разные задания по запросу с одинаковым контекстом искры, но я не знаю, как именно я могу это сделать.Как запускать несколько заданий по запросу в одном и том же искровом контексте

Я пытаюсь получить текущий контекст, но, похоже, он создает новый контекст искры (с новыми исполнителями).

Я призываю spark-submit, чтобы добавить новые рабочие места.

Я запускаю код на Amazon EMR, с пряжей в качестве менеджера ресурсов.

Мой код:

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 \ 

Если я запускаю дважды искровым представить это создать 6 исполнителей, но я хочу, чтобы запустить все эти работы на одной свече приложения.

Как можно добиться добавления рабочих мест в существующее искровое приложение?

Я прочитал о JobServer (https://github.com/spark-jobserver/spark-jobserver), который достиг того, что я хочу сделать, но я не понимаю, как они это делают.

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^