Автоматическая настройка конфигурации ресурсов для систем потоковой обработки данных с использованием машинного обучения

Прочитано: 229 раз(а)


Данные можно уподобить потоку воды, когда непрерывно генерируется большой объем данных. Разнообразные данные, включая приложения, сетевые устройства, файлы журналов сервера, различные онлайн-действия и данные о местоположении, могут образовывать непрерывный поток. Мы называем такую ​​форму обработки данных потоковыми данными.

При потоковой передаче данных различные типы источников данных могут собираться, управляться, храниться, анализироваться в режиме реального времени и обеспечиваться информацией. Для большинства сценариев, в которых постоянно генерируются новые динамические данные, целесообразно внедрить потоковую обработку данных , которая подходит для большинства отраслей и вариантов использования больших данных.

Системы обработки потоковых данных используются для анализа потоковых данных. Уже существует множество систем потоковой обработки данных, которые широко используются компаниями, например Apache Flink, Apache Storm, Spark Streaming и Apache Heron. Эти приложения для потоковой обработки данных характеризуются большим развертыванием и длительным временем работы (месяцы или даже годы) в приложениях, и каждое приложение работает с разными данными, поэтому даже небольшие улучшения производительности могут иметь значительные финансовые преимущества для компаний.

Чтобы повысить производительность системы, необходимо настроить параметры конфигурации ресурсов, чтобы указать количество ресурсов, таких как ядра ЦП и память, используемые в задачах. Но выбор ключевых параметров конфигурации и нахождение их оптимальных значений для приложений потоковой обработки данных очень сложны, а ручная настройка этих параметров требует чрезвычайно много времени.

Для одного неизвестного приложения инженеру по производительности, хорошо разбирающемуся в системе потоковой обработки данных, может потребоваться несколько дней или даже недель, чтобы найти его оптимальную конфигурацию ресурсов.

Чтобы решить вышеуказанную проблему, исследователи начали применять методы машинного обучения для проведения исследований. Исследование было опубликовано в Intelligent Computing . Авторы использовали программу Apache Flink в качестве экспериментального приложения для потоковой обработки данных.

Подход машинного обучения использовался для автоматической и эффективной настройки параметров распределения ресурсов для приложения потоковой обработки данных. Он применяет алгоритм случайного леса для построения высокоточной модели производительности для программы обработки потоковых данных, которая выводит данные о задержке хвоста или пропускной способности приложения, принимая в качестве входных данных скорость входных данных и ключевые параметры конфигурации. Кроме того, подход машинного обучения использует байесовский алгоритм оптимизации (BOA) для итеративного поиска в многомерном пространстве конфигурации ресурсов для достижения оптимальной производительности.

Было экспериментально показано, что этот подход значительно улучшает задержку хвоста 99-го процентиля и пропускную способность. Метод, предложенный в этом исследовании, представляет собой инструмент настройки параметров, независимый от системы Flink, и может быть интегрирован в другие системы обработки потоков, такие как Spark Streaming и Apache Storm.

Автоматическая настройка конфигурации ресурсов для систем потоковой обработки данных с использованием машинного обучения



Новости партнеров