A B C D E G H I K L M N O P R S T W Y Z Б В Е И К М О П Т Ц

Apache Flink

Apache Flink

     

    Apache Flink – это распределенная отказоустойчивая платформа обработки информации с открытым исходным кодом, используемая в высоконагруженных Big Data приложениях для анализа данных, хранящихся в кластерах Hadoop. Разработанный в 2010 году в Техническом университете Берлина в качестве альтернативы Hadoop MapReduce для распределенных вычислений больших наборов данных, Flink использует подход ориентированного графа, устраняя необходимость в отображении и сокращения [1].

    Подобно Apache Spark, Flink имеет готовые коннекторы с Apache Kafka, Amazon Kinesis, HDFSCassandra, Google Cloud Platform и др., а также интегрируется со всеми основными системами управления кластерами: Hadoop YARN, Apache Mesos и Kubernetes. Кроме того, Флинк может использоваться в качестве основы автономного кластера [1].

    Входные данные каждого потока Флинк берутся с одного или нескольких источников, например, из очереди сообщений Apache Kafka, СУБД HBase или файловой системы Hadoop HDFS, отправляясь в один или несколько приемников (очередь сообщений, файловую систему или базу данных). В потоке может быть выполнено произвольное число преобразований. Эти потоки могут быть организованы как ориентированный ациклический граф, позволяющий приложению распределять и объединять потоки данных. Помимо потоковой обработки Big Data в рамках DataStream API, Flink также позволяет работать с пакетами данных с помощью мощного DataSet API.

    При развертывании приложения Flink автоматически идентифицирует требуемые ресурсы на основе настроенного параллелизма приложения и запрашивает их из системы управления кластером. В случае сбоя Flink заменяет контейнер, запрашивая новые ресурсы. Отправка и управление приложением происходит через REST. Это облегчает интеграцию Flink в различных средах [1].

    Подобно другому популярному фреймворку потоковой обработки Big Data, Apache Spark, Флинк содержит оптимизатор и библиотеки для машинного обучения, аналитических графиков и реляционной обработки данных.

    Apache Flink, Флинк, архитектура Big Data, Большие данные
    Архитектура Apache Flink

    Преимущества и недостатки Флинк

    Ключевыми достоинствами Apache Flink можно назвать следующие [1]:

    • высокая производительность — приложения Флинк могут распараллеливаться в тысячи задач, которые распределяются и выполняются в кластере одновременно, используя практически неограниченное количество процессоров, основной памяти, дискового и сетевого ввода-вывода. Кроме того, Flink легко поддерживает очень большое состояние приложения. Его асинхронный и инкрементный контрольный алгоритм обеспечивает минимальное влияние на задержки обработки, гарантируя точную согласованность состояния за один раз.

     

    Потоковая обработка данных с помощью Apache Flink

    Код курса
    FLINK
    Ближайшая дата курса
    10 ноября, 2025
    Продолжительность
    16 ак.часов
    Стоимость обучения
    48 000

     

    • низкое время задержки, достигаемое, в т.ч. за счет собственной подсистемы управления памятью и ее эффективного использования – приложения Флинк оптимизированы для локального доступа. Состояние задачи (stateful) сохраняется в локально памяти или, если его размер превышает доступную память, на жестком диске.
    • веб-интерфейс, который отображает граф обработки данных и позволяет посмотреть, сколько данных каждой подзадачи обработал конкретный worker. Благодаря этому можно определить, какой участок кода работает с задержкой, т.е. какой процент данных не успел обработаться и где [2].
    • отказоустойчивость – Flink гарантирует согласованность состояния приложений в случае сбоев, периодически и асинхронно проверяя локальное состояние на необходимость перемещения в долговечное хранилище;
    • гибкая работа с потоковыми данными – поддержка временных и неисправных событий, непрерывная потоковая модель передачи с обратным воздействием, реализация концепции «окон» для избирательной обработки данных в определенном временном промежутке (подробно механизм временных окон мы описывали здесь на примере Apache Kafka Streams);
    • 2 режима работы с данными в 1 среде – потоковая передача и пакетная обработка;
    • специализированная поддержка итерационных вычислений (машинное обучение, анализ графов).
    Apache Flink, Флинк, архитектура Big Data, Большие данные
    Принцип работы Apache Flink

    При всех вышеперечисленных достоинствах, для Флинк характерны следующие недостатки:

    • даже при наличии отказоустойчивого хранилища состояний для приложений (stateful), которое поддерживает механизм контрольных точек (checkpoints), из него нельзя восстановиться при изменении кода [2];
    • многие библиотеки Flink до сих пор находятся в бета-режиме [1], что затрудняет его использование в крупных Big Data проектах корпоративного сектора, где требуется высокая надежность [3].

    Сравнению Flink с Apache Spark, другим популярным фреймворком потоковой обработки больших данных мы посвятили отдельную статью.

    Источники

    1. https://ru.bmstu.wiki/Apache_Flink
    2. https://habr.com/ru/company/ivi/blog/347408/
    3. https://medium.com/@chandanbaranwal/spark-streaming-vs-flink-vs-storm-vs-kafka-streams-vs-samza-choose-your-stream-processing-91ea3f04675b

    Related Entries