Я написал приложение для структурированной потоковой передачи данных в реальном времени на S3. Мы получаем данные от Kafka и pu sh на S3 после обработки данных с использованием структурированной потоковой передачи.
Я знаю, что потоковая передача Spark поддерживает динамическое c распределение ресурсов. Но обнаружен следующий JIRA https://issues.apache.org/jira/browse/SPARK-24815, в котором говорится, что динамическое c распределение ресурсов не поддерживается структурированной потоковой передачей.
Хотите знать, как обрабатывать скачок данных при динамическом c распределении ресурсы не поддерживаются структурированной потоковой передачей.
Причина, по которой НЕ реализуется Dynami c Распределение следующее (из JIRA): Если мы установили spark.dynamicAllocation.enabled = true и запустили структурированный потоковое задание, включается алгоритм пакетного динамического распределения c. Он запрашивает больше исполнителей, если задание задания имеет определенный размер, и удаляет исполнителей, если они простаивают в течение определенного периода времени. Он в основном предназначен для пакетной обработки, а не непрерывной обработки. В пакетном режиме мы заботимся о numRunningOrPendingTasks, а для потоковой передачи - о соотношении: averageBatchProcTime.toDouble / batchDurationMs, то есть среднее время пакетной обработки за единицу времени, поэтому сокращение системы при простое не является допустимым решением.
Вопрос: Как обрабатывать SPIKES при динамическом c распределение ресурсов НЕ предусмотрено.