Среду распределенных вычислений Flink можно развернуть в нескольких режимах.,В каждом режиме развертывания существуют соответствующие методы управления ресурсами для отправки задач.,Например: Flink может запускать задачи на основе режима автономного развертывания, режима развертывания Yarn и режима развертывания Kubernetes.,Отправка задач Flink в указанных выше режимах развертывания кластера потребует подачи заявок на ресурсы и взаимодействия с каждой ролью.,Ролевые объекты, участвующие в подаче заявки на ресурсы в разных режимах, обычно одни и те же.,Давайте возьмем процесс архитектуры среды выполнения Flink в качестве примера, чтобы получить общее представление о процессе взаимодействия объектов, происходящем после отправки задачи Flink.,Чтобы вы могли изучить другой режим в будущем. отправки задача Процесс подачи следующей задачи.
На рисунке выше показан процесс архитектуры среды выполнения Flink, который включает в себя весь процесс запуска кластера, отправки задач, а также применения и распределения ресурсов. Общие шаги следующие:
Выше приведена общая информация о процессе отправки задач Flink. В Flink существует несколько режимов отправки задач. Режим поддержки различных режимов развертывания кластера Flink. отправки задача другая,Соответствующий процесс выполнения задачи немного отличается.,Существует три режима развертывания задач для отправки задач в кластер Flink.,Они заключаются в следующем:
Вышеуказанные три типа режима отправки Основное отличие задач — разный жизненный цикл кластера Flink, разные методы распределения ресурсов и Flink. Место выполнения основного метода приложения (Клиент-клиент/JobManager) отличается.
Соответственно вводятся:
В режиме сеанса мы сначала запускаем кластер и поддерживаем сеанс. В этом сеансе задания отправляются через клиент. Все ресурсы были определены при запуске кластера, поэтому все отправленные задания будут конкурировать за ресурсы в кластере. Этот режим подходит для большого количества заданий с небольшим размером одного задания и коротким временем выполнения.
Преимущества:Нужен только один кластер,Все задания будут выполняться в этом кластере после отправки.,Все задачи совместно используют ресурсы кластера,Ресурсы высвобождаются после выполнения каждой задачи.
недостаток:Поскольку ресурсы кластера являются общими,Так что ресурсов не хватает,Отправка нового задания не удастся,Если задание не выполнено, что приводит к сбою диспетчера задач,Тогда будут затронуты все рабочие места.
Чтобы лучше изолировать ресурсы, режим «На задание» запускает кластер каждый раз, когда отправляется задание. Кластер создается только для этого задания. В этом режиме клиент запускает приложение, затем запускает кластер, и задание выполняется. отправляется в JobManager, а затем передается в TaskManager для выполнения. После завершения выполнения задания кластер будет отключен и все ресурсы будут освобождены.
Преимущества:В этом режиме каждое задание имеет свой собственныйJobManagerуправлять,Эксклюзивно пользуйтесь ресурсами этого кластера,Даже если работа не удалась,Простой соответствующего TaskManager не повлияет на другие задания. Если заявка состоит из нескольких заданий,Тогда каждое задание имеет свой независимый кластер.
недостаток:Каждое задание отправляется от клиента в кластер.JobManagerпредставлять на рассмотрение,Если одновременно отправляется большое количество заданий Flink, клиент будет занимать большую часть пропускной способности сети.,Это увеличит потребление ресурсов узла, на котором находится клиент.
Уведомление:Per-Job В настоящее время этот режим поддерживается только пряжей. Режим «На задание» устарел в Flink1.15 и может быть полностью исключен в последующих версиях. Основная причина заключается в том, что режим приложения выполняет инициализацию. основного метода в JobManager компонента кластера, что значительно оптимизирует производительность клиента.
И режим сеанса, и режим предварительного задания отправляют задания в JobManager на стороне клиента. Этот метод требует большой пропускной способности сети для загрузки зависимостей и отправки двоичных пакетов в JobManager. Кроме того, мы часто отправляем несколько заданий Flink на один и тот же клиентский узел. что усиливает потребление ресурсов узла, на котором находится клиент. Чтобы уменьшить потребление ресурсов клиента, мы можем использовать режим приложения.
Режим приложения аналогичен режиму «По каждому заданию», за исключением того, что для него не требуется клиент. После отправки каждого приложения будет запущен JobManager, что означает, что этот кластер JobManager существует только для выполнения этого приложения Flink. в приложении будет общий доступ к кластеру, JobManager будет закрыт после завершения выполнения приложения. В этом режиме приложение будет динамически создавать собственный выделенный кластер (JobManager), и все задачи будут совместно использовать кластер. Различные приложения полностью изолированы. В производственной среде для отправки задач рекомендуется использовать режим приложения.
Среди трех вышеупомянутых методов развертывания задач Flink в производственной среде предпочтителен режим приложения. Различия между ними суммируются следующим образом:
Различные режимы развертывания кластера Flink поддерживают разные методы отправки задач. Дальнейшие действия будут сосредоточены на поддержке автономного управления ресурсами и режима управления ресурсами Yarn.