Автоматическое масштабирование Spark Streaming не всегда действует даже при наличии доступных ресурсов - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь настроить автоматическое масштабирование для наших заданий Spark Streaming, выполняющихся на YARN в соответствии с Elastic Spark Streaming .Между прочим, я решил не использовать внутреннего автоматического масштабирования Spark , потому что нам нужно было агрессивно увеличивать / уменьшать, чем было упомянуто там, наряду с несколькими другими параметрами для настройки масштабирования, но я использовал аналогичный код для выполнения масштабирования.

Итак, я использую экземпляр Планировщик пряжи , который я извлекаю из SparkContext в начале задания, чтобы периодически выполнять операции масштабирования.Я вижу, что YARN не отвечает на запросы масштабирования немедленно, даже когда у него достаточно ресурсов (как с точки зрения ядер, так и памяти).Он реагирует примерно через час работы заданий (примерно после 5-6 вызовов requestTotalExecutors), и поведение здесь даже не является детерминированным с точки зрения того, когда оно начинается.Запросы на уменьшение при вызове killExecutors(Seq) по-прежнему работают, как и ожидалось, поэтому масштабирование только по какой-то причине не работает.

Я не уверен, есть ли какая-то конфигурация на YARN или Spark, которую я пропустил, какаявызывает это странное поведение, и я здесь для помощи.

...