Большие данные. Flink расширенный (13): режим отправки задач Flink.
Большие данные. Flink расширенный (13): режим отправки задач Flink.

Flink Режим отправки задач

Среду распределенных вычислений Flink можно развернуть в нескольких режимах.,В каждом режиме развертывания существуют соответствующие методы управления ресурсами для отправки задач.,Например: Flink может запускать задачи на основе режима автономного развертывания, режима развертывания Yarn и режима развертывания Kubernetes.,Отправка задач Flink в указанных выше режимах развертывания кластера потребует подачи заявок на ресурсы и взаимодействия с каждой ролью.,Ролевые объекты, участвующие в подаче заявки на ресурсы в разных режимах, обычно одни и те же.,Давайте возьмем процесс архитектуры среды выполнения Flink в качестве примера, чтобы получить общее представление о процессе взаимодействия объектов, происходящем после отправки задачи Flink.,Чтобы вы могли изучить другой режим в будущем. отправки задача Процесс подачи следующей задачи.

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

  1. При запуске кластера Flink сначала запускается JobManager. В режиме автономного кластера одновременно запускается TaskManager, а ресурсы в этом режиме фиксированы. В других режимах развертывания кластера TaskManager запускается динамически. представленные задачи;
  2. Когда задача отправляется на клиент, клиент преобразует задачу в JobGraph и отправляет ее в JobManager;
  3. JobManager сначала запускает Dispatcher для распределения заданий и запускает Flink WebUI для предоставления информации о выполнении заданий;
  4. После запуска Dispatcher запустит JobMaster и отправит JobGraph в JobMaster. JobMaster преобразует JobGraph в исполняемый файл ExecutionGraph.
  5. JobMaster подает заявку на ресурсы слота для текущей задачи из соответствующего менеджера ресурсов ResourceManager;
  6. В автономном диспетчере ресурсов вы сразу найдете запущенный диспетчер задач для подачи заявки на ресурсы слота. Если ресурсов недостаточно, выполнение задачи не удастся;
  7. Другие менеджеры ресурсов запустят новый диспетчер задач. Недавно запущенный диспетчер задач зарегистрирует ресурсы в ResourceManager, а затем ResourceManager подаст заявку на ресурсы слота из диспетчера задач. Если ресурсов недостаточно, будет запущен новый диспетчер задач для удовлетворения ресурсов;
  8. TaskManager — соответствующий ресурс слота предложения JobMaster;
  9. JobMaster отправляет задачу, которую необходимо выполнить, в соответствующий TaskManager для выполнения, и данные могут обмениваться между TaskManagers.

Выше приведена общая информация о процессе отправки задач Flink. В Flink существует несколько режимов отправки задач. Режим поддержки различных режимов развертывания кластера Flink. отправки задача другая,Соответствующий процесс выполнения задачи немного отличается.,Существует три режима развертывания задач для отправки задач в кластер Flink.,Они заключаются в следующем:

  • режим сеанса - Session Mode
  • режим одиночного задания - Режим каждого задания (устарело)
  • режим приложения - Application Mode

Вышеуказанные три типа режима отправки Основное отличие задач — разный жизненный цикл кластера Flink, разные методы распределения ресурсов и Flink. Место выполнения основного метода приложения (Клиент-клиент/JobManager) отличается.

Соответственно вводятся:

1. Режим сеанса

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

Преимущества:Нужен только один кластер,Все задания будут выполняться в этом кластере после отправки.,Все задачи совместно используют ресурсы кластера,Ресурсы высвобождаются после выполнения каждой задачи.

недостаток:Поскольку ресурсы кластера являются общими,Так что ресурсов не хватает,Отправка нового задания не удастся,Если задание не выполнено, что приводит к сбою диспетчера задач,Тогда будут затронуты все рабочие места.

2. Режим индивидуального задания

Чтобы лучше изолировать ресурсы, режим «На задание» запускает кластер каждый раз, когда отправляется задание. Кластер создается только для этого задания. В этом режиме клиент запускает приложение, затем запускает кластер, и задание выполняется. отправляется в JobManager, а затем передается в TaskManager для выполнения. После завершения выполнения задания кластер будет отключен и все ресурсы будут освобождены.

Преимущества:В этом режиме каждое задание имеет свой собственныйJobManagerуправлять,Эксклюзивно пользуйтесь ресурсами этого кластера,Даже если работа не удалась,Простой соответствующего TaskManager не повлияет на другие задания. Если заявка состоит из нескольких заданий,Тогда каждое задание имеет свой независимый кластер.

недостаток:Каждое задание отправляется от клиента в кластер.JobManagerпредставлять на рассмотрение,Если одновременно отправляется большое количество заданий Flink, клиент будет занимать большую часть пропускной способности сети.,Это увеличит потребление ресурсов узла, на котором находится клиент.

Уведомление:Per-Job В настоящее время этот режим поддерживается только пряжей. Режим «На задание» устарел в Flink1.15 и может быть полностью исключен в последующих версиях. Основная причина заключается в том, что режим приложения выполняет инициализацию. основного метода в JobManager компонента кластера, что значительно оптимизирует производительность клиента.

3. Режим приложения

И режим сеанса, и режим предварительного задания отправляют задания в JobManager на стороне клиента. Этот метод требует большой пропускной способности сети для загрузки зависимостей и отправки двоичных пакетов в JobManager. Кроме того, мы часто отправляем несколько заданий Flink на один и тот же клиентский узел. что усиливает потребление ресурсов узла, на котором находится клиент. Чтобы уменьшить потребление ресурсов клиента, мы можем использовать режим приложения.

Режим приложения аналогичен режиму «По каждому заданию», за исключением того, что для него не требуется клиент. После отправки каждого приложения будет запущен JobManager, что означает, что этот кластер JobManager существует только для выполнения этого приложения Flink. в приложении будет общий доступ к кластеру, JobManager будет закрыт после завершения выполнения приложения. В этом режиме приложение будет динамически создавать собственный выделенный кластер (JobManager), и все задачи будут совместно использовать кластер. Различные приложения полностью изолированы. В производственной среде для отправки задач рекомендуется использовать режим приложения.

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

  1. В режиме сеанса сначала создается кластер Flink, а затем отправляется задача. Задача отправляется и запускается на клиенте, и несколько отправленных заданий совместно используют кластер Flink;
  2. И режим «на задание», и режим приложения создают кластеры после отправки задач Flink;
  3. В режиме каждого задания задачи Flink отправляются через клиент. Каждая задача Flink соответствует кластеру Flink. Каждая задача имеет хорошую изоляцию ресурсов.
  4. Режим приложения предназначен для выполнения основного метода в JobManager для создания кластера Flink для каждого приложения Flink. Если приложение имеет несколько задач, эти задачи Flink совместно используют кластер.

Различные режимы развертывания кластера Flink поддерживают разные методы отправки задач. Дальнейшие действия будут сосредоточены на поддержке автономного управления ресурсами и режима управления ресурсами Yarn.

boy illustration
Устраните проблему совместимости между версией Spring Boot и Gradle Java: возникла проблема при настройке корневого проекта «demo1» > Не удалось.
boy illustration
Научите вас шаг за шагом, как настроить Nginx.
boy illustration
Это руководство — все, что вам нужно для руководства по автономному развертыванию сервера для проектов Python уровня няни (рекомендуемый сборник).
boy illustration
Не удалось запустить docker.service — Подробное объяснение идеального решения ️
boy illustration
Настройка файлового сервера Samba в системе Linux Centos. Анализ NetBIOS (супер подробно)
boy illustration
Как настроить метод ssh в Git, как получить и отправить код через метод ssh
boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0