Apache Flink — это механизм распределенной обработки и платформа для вычислений с отслеживанием состояния над неограниченными и ограниченными потоками данных.

Этот блог научит вас всему, что вам нужно знать, чтобы начать работу с Apache Flink.

Что такое Apache Flink?

Apache Flink — это фреймворк для обработки данных. Apache Flink отлично справляется как с неограниченными, так и с ограниченными наборами данных.

Среда выполнения Flink может запускать приложения любого типа в неограниченных потоках благодаря точному контролю времени и состояния.

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

Он может выполнять оба типа обработки данных.

  1. Партия
  2. Реальное время

Пакетная обработка данных

Пакетные данные означают обработку данных в состоянии покоя.

например: Анализ исторических данных.

Обработка данных в реальном времени

Обработка данных в режиме реального времени означает обработку данных или событий, как только данные или события генерируются для таких источников, как IOT, API и т. д.

например: Система обнаружения мошенничества в режиме реального времени

Он в основном используется для обработки данных в реальном времени.

Почему я предпочитаю Apache Flink другим фреймворкам для обработки данных в реальном времени?

Основной дизайн Flink делает его быстрее, чем Spark.

В репозитории Apache Apache Spark является одним из самых активных компонентов. Spark имеет значительную базу участников и отличную поддержку сообщества. В настоящее время Spark используется в производстве.

Однако Flink имеет встроенную поддержку потоковой передачи, что делает его гораздо более функциональным, чем Spark (который обрабатывает потоки в виде микропакетов).

Случаи использования

  1. Выявление мошенничества — в режиме реального времени
  2. Система рекомендаций в реальном времени

Архитектура Apache Flink

Архитектура Flink предназначена для обработки крупномасштабных наборов данных и обеспечения высокой пропускной способности и обработки с малой задержкой. Вот обзор ключевых компонентов архитектуры Flink:

1. Менеджер заданий:

JobManager отвечает за планирование и организацию выполнения заданий Flink. Он собирает рабочие запросы от клиентов и строит JobGraph, чтобы показать поток данных задания.

Менеджер задач также следит за ходом выполнения задания и распределяет задачи между менеджерами задач для выполнения.

2. Диспетчер задач

JobManager назначает обязанности TaskManager, который отвечает за их выполнение.

Каждый TaskManager может одновременно выполнять одну или несколько задач, работая на своей собственной JVM. TaskManager выделяет ресурсы для задач, следит за их выполнением и обновляет JobManager по их статусу.

3. API потока данных

Обработка непрерывных потоков данных осуществляется с помощью DataStream API. Он предлагает операторов в реальном времени для агрегирования, фильтрации и преобразования потоков данных.

API DataStream предлагает обработку во время события, работу с окнами и операции с отслеживанием состояния поверх ядра ядра Flink.

4. API набора данных

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

API DataSet предназначен для крупномасштабных наборов данных и поддерживает распределенные вычисления для параллельной обработки.

5. Время выполнения Flink

Среда выполнения Flink содержит ряд важных компонентов для управления и выполнения заданий Flink.

Среди этих компонентов — служба распределенной координации, сетевой стек, управление памятью и механизмы отказоустойчивости.

6. Библиотеки

Flink предоставляет набор библиотек для распространенных случаев использования, таких как обработка графов, машинное обучение и обработка SQL.

Эти библиотеки предоставляют готовые операторы и алгоритмы, которые можно использовать для быстрого и простого построения конвейеров обработки данных.

Сводка по архитектуре

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

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

Мы подошли к концу этого блога и продолжим в следующем блоге. Мы попрактикуемся с Apache Flink.

Подпишитесь на меня, чтобы узнать больше, и хлопайте, если вам нравится этот блог

https://www.buymeacoffee.com/deepanshutyagi