Динамическое распределение для потоковой передачи искр
В нашем кластере запущено задание Spark Streaming с другими заданиями (базовые задания Spark). Я хочу использовать динамическое распределение ресурсов для этих заданий, включая Spark Streaming. Согласно нижеприведенной проблеме JIRA, динамическое распределение не поддерживается Spark Streaming(в версии 1.6.1). Но это исправлено в 2.0.0
Согласно PDF в этом выпуске говорится, что должно быть поле конфигурацииspark.streaming.dynamicAllocation.enabled=true
Но я не вижу этой конфигурации в документации.
Может кто-нибудь, пожалуйста, подтвердите,
- Не могу ли я включить динамическое распределение ресурсов для Spark Streaming в версии 1.6.1.
- Это доступно в Spark 2.0.0. Если да, какую конфигурацию следует установить (
spark.streaming.dynamicAllocation.enabled=true
или жеspark.dynamicAllocation.enabled=true
)
1 ответ
Могу ли я включить динамическое распределение ресурсов для Spark Streaming для версии 1.6.1?
Да, вы можете включить, настроив динамическое выделение для любого искрового приложения с spark.dynamicAllocation.enabled=true
Но у меня мало проблем с потоковым приложением (упомянуто в JIRA)
- Ваши исполнители никогда не могут бездействовать, так как они запускают что-то каждые N секунд
- Вы должны иметь хотя бы один приемник, работающий всегда
- Существующая эвристика не учитывает длину очереди пакета
Итак, им добавлено новое свойство (spark.streaming.dynamicAllocation.enabled
) в Spark 2.0 только для потоковых приложений.
Это доступно в Spark 2.0.0 . Если да, какую конфигурацию следует установить spark.streaming.dynamicAllocation.enabled или spark.dynamicAllocation.enabled?
Должно быть spark.streaming.dynamicAllocation.enabled
если приложение потоковое, в противном случае воспользуйтесь spark.dynamicAllocation.enabled
Изменить: (согласно комментарию на 2017-январь-05)
На сегодняшний день это не задокументировано, но я получаю это свойство и реализацию в исходном коде Spark. ExecutorAllocationManager.scala
(Юнит тесты ExecutorAllocationManagerSuite.scala
) класс был включен в Spark 2.0, и эта реализация отсутствует в Spark 1.6 и ниже.