Учебники

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

Apache Flink работает над архитектурой Kappa. Архитектура Kappa имеет один процессор — поток, который обрабатывает весь ввод как поток, а механизм потоковой передачи обрабатывает данные в режиме реального времени. Пакетные данные в архитектуре каппа — это особый случай потоковой передачи.

Следующая диаграмма показывает архитектуру Apache Flink .

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

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

Большая часть инфраструктуры больших данных работает на архитектуре Lambda, которая имеет отдельные процессоры для пакетных и потоковых данных. В архитектуре Lambda у вас есть отдельные кодовые базы для пакетного и потокового просмотра. Для запроса и получения результата необходимо объединить кодовые базы. Нелегко поддерживать отдельные кодовые базы / представления и объединять их, но архитектура Kappa решает эту проблему, поскольку имеет только одно представление — в режиме реального времени, поэтому объединение кодовой базы не требуется.

Это не означает, что архитектура Kappa заменяет архитектуру Lambda, она полностью зависит от варианта использования и приложения, которое решает, какая архитектура предпочтительнее.

На следующей диаграмме показана архитектура выполнения заданий Apache Flink.

Исполнение архитектуры

программа

Это кусок кода, который вы запускаете на кластере Flink.

клиент

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

JobManager

После получения графика потока данных задания от клиента он отвечает за создание графика выполнения. Он назначает задание для TaskManager в кластере и контролирует выполнение задания.

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

Он отвечает за выполнение всех задач, которые были назначены JobManager. Все TaskManager запускают задачи в отдельных слотах с указанным параллелизмом. Он отвечает за отправку статуса задач в JobManager.

Особенности Apache Flink

Особенности Apache Flink следующие —

Он имеет потоковый процессор, который может запускать как пакетные, так и потоковые программы.

Он может обрабатывать данные с молниеносной скоростью.

API доступны на Java, Scala и Python.

Предоставляет API-интерфейсы для всех распространенных операций, которые очень просты в использовании для программистов.

Обрабатывает данные с низкой задержкой (наносекунды) и высокой пропускной способностью.

Его отказоустойчивый. Если происходит сбой узла, приложения или оборудования, это не влияет на кластер.

Может легко интегрироваться с Apache Hadoop, Apache MapReduce, Apache Spark, HBase и другими инструментами для работы с большими данными.

Управление в памяти может быть настроено для лучшего вычисления.

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

Оконное управление очень гибкое в Apache Flink.

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