Запуск нескольких приложений структурированной потоковой передачи в автономном кластере Spark - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть Spark Cluster с одним главным узлом, тремя подчиненными и одним главным резервным главным узлом. Конечно зоопарк как узел для себя. Работает в автономном режиме. Я хочу запустить несколько скриптов Pyspark, используя Kafka + Spark Structured Streaming + немного дб. Один скрипт с приемником в базу данных Cassandra, записывающий необработанные данные, второй - агрегирование данных в MongoDB, третий - о некоторых агрегациях окон и т. Д. c. Я запускаю свои скрипты с помощью spark-submit для каждого скрипта, и когда я запускаю первый, он работает без сбоев, но он занимает все ресурсы (все ядра), и второе приложение будет в состоянии ожидания, а также и третье. Я попытался поставить --executor-cores 3, и так как мои рабочие узлы имеют 4 ядра каждое (сумма = 12), у него остается 4 ядра для второго приложения, а затем он работает так, как должен. Это обходной путь, но я сомневаюсь, что это правильный способ планирования управления ресурсами. Конечно, я пробовал с spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool1") для каждого приложения другое имя пула, но я не вижу улучшения. Я новичок в этой кластеризации и, вероятно, я делаю что-то, что не из книги, и поэтому я прошу кого-то более опытного за помощью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...