Операционная архитектура Flink (1)

Flink
Операционная архитектура Flink (1)

Прежде чем изучать компонент, самое главное — понять работающий фреймворк этого компонента. Давайте взглянем на работающую структуру вычислительного движка flink.

Компоненты среды выполнения Flink

0YLSZH91CIUXAT5HH.png

Архитектура среды выполнения Flink в основном состоит из четырех отдельных компонентов, которые работают вместе при запуске приложений потоковой обработки:Менеджер по работе),Менеджер ресурсов (Менеджер ресурсов),Диспетчер задач,а такжеДиспетчер. Поскольку Flink реализован на Java и Scala, все компоненты работают на виртуальной машине Java. Обязанности каждого компонента следующие:

  • Менеджер заданий (JobManager): Управляет основным процессом, выполняемым приложением, т. е. каждое приложение будет выполняться отдельным менеджером заданий. Сначала JobManager получит приложение для выполнения, которое будет включать в себя:График работы),логический граф потока данныхи упаковал всеJAR-пакеты классов, библиотек и других ресурсов. JobManager преобразует JobGraph в физический граф потока данных, который называется "схема выполнения"(ExecutionGraph), который содержит все задачи, которые могут выполняться одновременно. JobManager будет запрашивать у диспетчера ресурсов (ResourceManager) необходимые ресурсы для выполнения задачи, то есть на диспетчере задач (TaskManager)слот. Как только он получает достаточно ресурсов, он отправляет графы выполнения диспетчерам задач, которые их фактически запускают. Во время выполнения JobManager отвечает за все операции, требующие централизованной координации, такие как координация контрольных точек.

    Если говорить человеческими словами: JobManger это как главный инженер, который отвечает за определенный блок на стройке.Он отвечает за преобразование разработанной проектировщиком экранной схемы в объемную трехмерную схему, а затем подачу заявки на ресурсы со склада в соответствии с требованиями задания и расстановкой подчиненных ему рабочих для его выполнения.И координировать работу плотников, внешних каркасников, арматурщиков, бетонщиков, разнорабочих, каменщиков, монтажников, электросварщиков, маляров, шлифовщиков, сантехники, крановщики и т. д., чтобы выполнить эту конкретную задачу как можно быстрее

  • Менеджер ресурсов (ResourceManager): в основном отвечает зауправлятьСлот TaskManager (Диспетчер задач) (slot) (Слот: это наименьшая единица ресурсов обработки, определенная во Flink.). Когда JobManager подает заявку на ресурсы слота,ResourceManager назначит TaskManager со свободным слотом для JobManager. Если ResourceManager не имеет достаточного количества слотов для удовлетворения запроса JobManager, он также можетИнициировать сеанс на платформе поставщика ресурсов(YARN, Mesos, K8s, автономные развертывания и т. д.), чтобы предоставить контейнеры, запускающие процессы TaskManager. Кроме того,ResourceManager также отвечает за завершение бездействующих диспетчеров задач и высвобождение вычислительных ресурсов.

Говоря человеческими словами: ResourceManager — это администратор склада, отвечающий за распределение ресурсов, необходимых для различных проектов.Если ресурсов недостаточно, он также может подать заявку на использование ресурсов с других сторонних складов.Конечно, если их слишком много много приложений ресурсов, он будет принят обратно!

  • Диспетчер задач (TaskManager): в каждом диспетчере задач будет несколько слотов, несколько диспетчеров задач могут работать параллельно, и один диспетчер задач может запускать одно и то же приложение с другими. Последовательный TaskManager обменивается данными.

    К слову о людях: TaskManager — это сбор всех видов рабочих на стройке.

  • Диспетчер: может запускаться между заданиями, предоставляет интерфейс REST для отправки приложений. Когда приложение отправляется на выполнение, запускается диспетчер и передает приложение диспетчеру заданий. Поскольку это интерфейс REST, Dispatcher может действовать как точка доступа HTTP к кластеру, поэтому он не блокируется брандмауэрами. Диспетчер также запускает веб-интерфейс для удобного отображения и мониторинга информации о выполнении заданий. Диспетчер может не потребоваться в архитектуре, в зависимости от того, как приложение было отправлено для запуска.

Кстати о людях: две функции: 1. Перенести JobManager в другой JobManager 2. Интерфейс мониторинга пользовательского интерфейса flinkWeb

Процесс отправки задачи

  • нормальная фиксацияimage.png
  • фиксация в режиме пряжиimage.png

Диспетчер задач и слоты

Параллелизм и сольт

  • Чтобы контролировать, сколько задач может получить TaskManager, TaskManager управляется слотом задачи (TaskManager имеет по крайней мере один слот).image.png
  • Каждый TaskManager в Flink — это процесс JVM, который может выполнять одну или несколько подзадач в отдельных потоках. Количество подзадач конкретного оператора называется его параллелизмом. В общем, параллелизм потока можно рассматривать как максимальный параллелизм среди всех его операторов.image.png

совместное использование слотов

  • По умолчанию Flink позволяет подзадачам совместно использовать слоты, даже если они являются подзадачами разных задач. так В результате один слот может содержать весь конвейер заданий.
  • Слот задач — это статическая концепция, которая относится к возможности одновременного выполнения TaskManager.image.png

Эта статья воспроизведена в моем личном блогеОперационная архитектура Flink (1)следитьCC 4.0 BY-SA Соглашение об авторском праве

Добро пожаловать на обучение по обмену

личный блог

домашняя страница csdn