Это 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.
Когда программа отправлена, система создаст клиента для предварительной обработки, преобразует программу в параллельный поток данных и передаст ее диспетчеру заданий и диспетчеру задач для выполнения.