Мы создаем систему, состоящую из нескольких приложений Spark Streaming, каждое из которых имеет несколько приемников. Насколько я понял, для каждого ресивера нужно свое ядро в кластере. Нам нужно несколько приемников для обработки пиков, но они не нужны нам постоянно. Приложения довольно малы, выполняя только одну задачу, чтобы (повторно) отправить их в кластер, не отвлекая другие задания и задачи.
1) Предполагая, что у нас есть 5 заданий с 5 приемниками в каждом, нам потребуется не менее 25 ядер в кластере только для работы приемников + ядра для обработки. Это правильно?
2) Есть ли возможность сделать более динамичное распределение ресурсов или одно ядро жестко привязано к одному приемнику?
3) Я взглянул на сервер spark-rest, который предлагает возможность совместного использования контекста искры для разных заданий. Не могли бы вы подумать об одном SparkStreamingContext для всех (~ 100) заданий?
Мы запускаем кластер в автономном режиме вместе с кластером Cassandra на тех же узлах.