Я хочу запускать разные задания по запросу с одинаковым контекстом искры, но я не знаю, как именно я могу это сделать.Как запускать несколько заданий по запросу в одном и том же искровом контексте
Я пытаюсь получить текущий контекст, но, похоже, он создает новый контекст искры (с новыми исполнителями).
Я призываю 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), который достиг того, что я хочу сделать, но я не понимаю, как они это делают.