Какова системная архитектура Flink?

Flink

Это 9-й день моего участия в августовском испытании обновлений.Подробности о мероприятии:Испытание августовского обновления

текст

在这里插入图片描述

Client

На какой машине отправлено задание Flink, текущая машина называется Клиентом.

Программный код, разработанный пользователем, построит граф DataFlow и отправит его в JobManager через Клиент.

JobManager

Главный узел, эквивалентный ResourceManager в YARN, обычно может обеспечить высокую доступность в производственной среде.

JobManager разделит задачи и запланирует их выполнение в TaskManager.

TaskManager

На узле (подчиненном) TaskManager — это та часть, которая фактически реализует задачу.

коммуникация

Client -> JobManager

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

Коммуникация Akka основана на системе актеров. Клиент может отправлять инструкции JobManager, например «Отправить задание» или «Отменить/обновить задание».

JobManager -> Client

JobManager также может передавать Клиенту информацию, такую ​​как обновления статуса, статистику и результаты.

JobManager -> TaskManager

Клиент отправляет задание диспетчеру заданий, а затем диспетчер заданий разбивает задание на задачи и отправляет их диспетчеру задач (воркеру).

JobManager и TaskManager также обмениваются данными на основе Akka. JobManager отправляет команды, такие как развертывание/остановка/отмена задач или запускает контрольную точку. В свою очередь, TaskManager связывается с JobManager, чтобы вернуть статус задачи, пульс (пульс), статистику и т. д.

TaskManager1 -> TaskManager2

Кроме того, данные между диспетчерами задач передаются по сети, например, когда Data Stream выполняет какие-то операторские операции, часто требуется передача данных между диспетчерами задач.

Суммировать

При запуске системы Flink сначала запускаются JobManager и один или несколько TaskManager.

JobManager отвечает за координацию работы системы Flink, а TaskManager — это рабочий процесс, выполняющий параллельные программы.

Когда система запускается локально, JobManager и TaskManager запускаются в одной и той же JVM.

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