Динамическое Распределение с искровым потоком на пряже, не уменьшая исполнителей - PullRequest
0 голосов
/ 25 декабря 2018

Я использую Stream-Streaming (версия 2.2) в кластере пряжи и пытаюсь включить динамическое распределение ядра для своего приложения.

Количество исполнителей увеличивается по мере необходимости, но как только исполнители назначены, они не уменьшаются даже при уменьшении трафика, т. Е. Исполнитель после выделения не освобождается.Я также включил службу внешнего перемешивания на пряжу, как упомянуто здесь: https://spark.apache.org/docs/latest/running-on-yarn.html#configuring-the-external-shuffle-service

Конфиги, которые я установил в команде spark-submit:

            --conf spark.dynamicAllocation.enabled=false \
            --conf spark.streaming.dynamicAllocation.enabled=true \
            --conf spark.streaming.dynamicAllocation.scalingInterval=30 \
            --conf spark.shuffle.service.enabled=true \
            --conf spark.streaming.dynamicAllocation.initialExecutors=15 \
            --conf spark.streaming.dynamicAllocation.minExecutors=10 \
            --conf spark.streaming.dynamicAllocation.maxExecutors=30 \
            --conf spark.streaming.dynamicAllocation.executorIdleTimeout=60s \
            --conf spark.streaming.dynamicAllocation.cachedExecutorIdleTimeout=60s \

Может ли кто-нибудь помочь, если естькакой-то конкретный конфиг, который мне не хватает?

Спасибо

1 Ответ

0 голосов
/ 25 января 2019

Документ, добавленный как часть этой JIRA, помог мне: https://issues.apache.org/jira/browse/SPARK-12133.

Ключевым моментом, на который следует обратить внимание, было то, что число исполнителей сокращается, когда соотношение (время обработки партии / партиядлительность) меньше 0,5 (значение по умолчанию), что по существу означает, что исполнители бездействуют в течение половины времени.Конфигурация, которую можно использовать для изменения этого значения по умолчанию, - «spark.streaming.dynamicAllocation.scalingDownRatio»

...