Flink Stream-Batch Integrated Computing (5): режим развертывания и работы

Оглавление

режим работы кластера

1.локальный режим

2. Автономный режим

3. Флинк в режиме YARN

локальный режим

Автономный режим

Flink в режиме пряжи


режим работы кластера

Подобно Spark , Flink также имеет различные режимы работы, три из которых в основном поддерживаются: локальный режим, автономный режим и режим Flink on YARN .

Каждый режим имеет определенный сценарий использования, давайте рассмотрим различные режимы работы.

1.локальный режим

Хорошо подходит для тестирования и отладки. Flink может работать в системах Linux , macOS и Windows . Единственным требованием для установки в локальном режиме является Java 1.7.x или более поздняя версия, а JVM будет запускаться во время выполнения , которое в основном используется для отладки кода и может работать на одном сервере.

2. Автономный режим

Применяется к ресурсам самоуправления Flink . Flink имеет собственный автономный режим кластера , который в основном оставляет управление планированием ресурсов самому кластеру Flink . Автономный режим — это кластерный режим, который может иметь один или несколько главных узлов ( JobManager , режим HA , используемый для планирования управления ресурсами, управления задачами, разделения задач и т. д.), несколько подчиненных узлов ( TaskManager , в основном используемый для выполнения декомпозированной задачи JobManager ) .

3. Флинк в режиме YARN

Используйте YARN для унифицированного планирования ресурсов и управления ими. Как правило, в процессе обучения и исследований или когда ресурсов недостаточно, вы можете развернуть в локальном режиме. Режим Flink on YARN более распространен в производственной среде .

В следующем разделе описан рабочий процесс Flink при отправке задачи YARN .

локальный режим

Развертывание и установка локального режима Flink

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

предпосылки:

Ява 1.8+

Шаги развертывания:

1. Загрузите установочный пакет и распакуйте его, загрузите более новую и стабильную версию:

# wget https://archive.apache.org/dist/flink/flink-1.16.0/flink-1.16.0-bin-scala_2.12.tgz

распаковать

# tar -zxf flink-1.16.0-bin-scala_2.12.tgz

2. Непосредственно используйте скрипт для запуска

Flink находится в локальном режиме, нет необходимости менять какие-либо настройки, просто запустите после распаковки.

Выполните следующую команду, чтобы напрямую запустить локальный режим

cd /data-ext/flink-1.16.0
bin/start-cluster.sh

отключить локальный режим

cd /data-ext/flink-1.16.0
bin/stop-cluster.sh

3. Проверьте после успешного запуска

Выполните jps, чтобы увидеть, что запущены два процесса.

# jps

23792 Таскманажерраннер

23514 StandaloneSessionClusterEntrypoint

доступ к веб-интерфейсу

После успешного запуска двух процессов посетите номер порта 8081, чтобы получить доступ к веб-интерфейсу управления flink.

http://мастер:8081/#/обзор

4. Запустите тесты, которые поставляются с flink

Мастер использует команду nc в linux, чтобы отправить несколько слов в сокет.

nc — это сокращение от netcat, мощного сетевого инструмента, имеющего репутацию швейцарского армейского ножа в сетевой индустрии. Фактическая команда команды nc в системе Linux — ncat, а nc — это мягкое подключение к ncat.

# sudo yum -y install nc
# nc -lk 8000

Откройте другое окно мастера, запустите встроенную программу статистики слов flink, примите данные входного сокета и сделайте статистику.

cd /data-ext/flink-1.16.0
bin/flink run examples/streaming/SocketWindowWordCount.jar   --hostname localhost  --port 8000

Посмотреть статистику:

Статистические результаты тестов, которые поставляются с flink, находятся в папке журнала.

Мастер выполняет следующую команду для просмотра статистических результатов

cd /data-ext/flink-1.16.0/log
tail -200f flink-root-taskexecutor-0-VM-0-9-centos.out

Автономный режим

Автономный режим — это своего рода кластерный режим, но этот режим обычно не работает в производственной среде, причина сравнивается с режимом на пряже:

Развертывание автономного режима относительно просто и может поддерживать небольшие масштабы и небольшое количество задач;

В режиме Stabdalone отсутствует управление заданиями в кластере на системном уровне, что приводит к неравномерному распределению ресурсов;

Изоляция ресурсов относительно проста, а конкуренция за ресурсы между задачами серьезна.

предпосылки:

Подготовьте два сервера, один для управления задачами (JobManager) и один для выполнения задач (TaskManager).

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

Установите java 1.8 на каждый сервер и установите JAVA_HOME

Реализовать вход без пароля по ssh между двумя серверами

список серверов:

ИМЯ

IP

ОС-ОБРАЗ

Джава

владелец

192.168.0.220

эл7.x86_64

1.8.0_291

узел01

192.168.0.6

эл7.x86_64

1.8.0_291

узел02

192.168.0.8

эл7.x86_64

1.8.0_291

этапы развертывания

1. Разархивируйте файл flink версии 1.16.0

2. Настройте переменные системной среды

# vim /etc/profile

экспорт FLINK_HOME=/data-ext/flink-1.16.0

экспорт PATH=$PATH:$FLINK_HOME/bin

Обновите переменные системной среды, чтобы они вступили в силу.

# source /etc/profile

3. Отредактируйте файл конфигурации

Введите команду cd flink-1.16.0/conf/, чтобы войти в каталог conf

Введите команду vim flink-conf.yaml, чтобы отредактировать файл conf, который является основным файлом конфигурации.

jobmanager.rpc.address

Настройте адрес rpc диспетчера заданий

Выберите узел в качестве главного узла (JobManager) и задайте для элемента конфигурации jobmanager.rpc.address IP-адрес или имя хоста узла.

Убедитесь, что все узлы имеют одинаковую конфигурацию jobmanager.rpc.address.

  • Изменить размер памяти диспетчера задач

taskmanager.memory.process.size: 2048m

диспетчер задач.numberOfTaskSlots

Изменить количество слотов задач диспетчера задач.Слот карты каждого сервера во Flink можно настроить в файле conf.По умолчанию 1

Мы изменяем его на 2. Если это значение больше 1, TaskManager может использовать несколько ядер ЦП, и один TaskManager будет выполнять функцию или оператор сбора данных параллельно.

Изменить параллелизм

параллелизм.по умолчанию: 4

4. Настройте мастер

vim masters

мастер: 8081

5. Редактировать воркеров

Введите vim worker для редактирования файла, этот файл используется для настройки подузла кластера flink, по умолчанию используется localhost.

Подобно конфигурации HDFS, отредактируйте файл conf/slaves и введите IP/имя хоста каждого рабочего узла, а также напишите несколько новых строк для нескольких узлов. Каждый рабочий узел позже будет запускать TaskManager.

Если у мастера большая нагрузка, вы все равно можете выбрать мастер, который не будет узлом TaskManager (удалите localhost).

# vim workers

Узел01

узел02

5. Файл конфигурации дистрибутива

Распространите файл конфигурации на дочерний сервер через scp

6. Запуск и остановка службы

Запустите кластер:

bin/start-cluster.sh

jps просмотр процесса

Выключите кластер:

bin/stop-cluster.sh

7. Конфигурация высокой доступности

7.1 Конструкция серверного узла

главный узел

подчиненный узел

Метод развертывания

владелец

узел01

Автономный-HA

7.2 Настройка переменных среды

# vim /etc/profile

экспорт HADOOP_HOME=/data-ext/hadoop-3.2.4

экспортировать HADOOP_CONF_DIR=$HADOOP_HOME/etc/Hadoop

Обновить среду системных переменных

# source /etc/profile

7.3 Правка conf/flink-conf.yaml, настройка flink

# vim conf/flink-conf.yaml

7.3.1 Настройка зоопарков

Создайте новый каталог хранения моментальных снимков и выполните его в каталоге FLINK_HOME.

# mkdir -p tmp/zookeeper

Измените конфигурацию zoo.cfg в разделе conf.

# vim zoo.cfg

# Каталог, в котором хранится снимок.

каталог данных = /data-ext/flink-1.16.0/tmp/zookeeper

# Порт, на который будут подключаться клиенты

клиентПорт = 2181

# узлы кворума ZooKeeper

сервер.1 = мастер:2888:3888

Flink в режиме пряжи

Принцип режима Flink on Yarn заключается в том, чтобы полагаться на YARN для планирования задач Flink, который в настоящее время широко используется на предприятиях. Преимущество этого режима заключается в том, что он может в полной мере использовать ресурсы кластера, повысить коэффициент использования машин кластера и нужен только один кластер Hadoop для выполнения задач MR и Spark, а также задач Flink и т. д. Операция очень удобна. и не требует особого обслуживания.Комплект кластеров также очень прост в эксплуатации и обслуживании. Режим Flink on Yarn должен полагаться на кластер Hadoop, а версия Hadoop должна быть 2.2 или выше.

При запуске нового сеанса клиента Flink YARN клиент сначала проверяет, доступны ли запрошенные ресурсы (контейнеры и память). После этого он загружает конфигурацию Flink и файлы JAR в HDFS.

Следующим шагом для клиента является запрос контейнера YARN для запуска ApplicationMaster. JobManager и ApplicationMaster (AM) работают в одном контейнере. После успешного запуска AM может узнать адрес JobManager и сгенерировать новый файл конфигурации Flink для TaskManager (чтобы он мог подключиться к JobManager). также будут загружены в HDFS. Кроме того, контейнер AM также предоставляет службу веб-интерфейса Flink. Порты, которые Flink использует для предоставления услуг, настраиваются идентификаторами пользователя и приложения как смещения, что позволяет пользователям выполнять несколько сеансов YARN параллельно.

После этого AM начинает выделять контейнеры (контейнеры) для диспетчера задач Flink и загружает файлы JAR и измененные файлы конфигурации из HDFS. После выполнения этих шагов Flink будет установлен и готов принимать задачи.

Шаги развертывания:

1. Измените конфигурацию conf/flink-conf.yaml и добавьте следующие два элемента:

#Если пользователю не удается отправить задание, количество повторных

пряжа.заявка-попытки: 4

# Установите задачу для равномерного распределения между всеми узлами

cluster.evenly-spread-out-slots: true

2. Загрузите пакет зависимостей hadoop и скопируйте пакет в каталог lib flink.

 flink-shaded-hadoop-3-uber-3.1.1.7.2.1.0-327-9.0.jar

3. Запустите тест (сеансовый режим)

Сеанс-кластер: он предназначен для предварительной инициализации кластера Flink (называемого пряжей-сеансом Flink) в YARN, открытия указанных ресурсов и отправки всех будущих задач Flink здесь. Этот кластер Flink будет находиться в кластере YARN, если его не остановить вручную. Кластер Flink, созданный таким образом, будет монополизировать ресурсы, и независимо от того, выполняются задачи Flink или нет, другие задачи в YARN не могут использовать эти ресурсы.

# Выполнить на главном узле

bin/yarn-session.sh -d -jm 1024 -tm 1024 -s 1

-tm указывает размер памяти каждого TaskManager

-s указывает количество слотов для каждого TaskManager

-d означает запуск в качестве фоновой программы

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

Просмотр списка запущенных задач

yarn application -list

4. Тест

  1. Создайте текстовый файл words.txt

мы думаем, что можем сделать это сами.

мы не можем думать, что можем догадаться сами.

думай думай думай

мы можем думать, значит, мы можем это делать.

  1. Загрузить файлы на hdfs
# hdfs dfs -copyFromLocal  words.txt  /
  1. Отправляйте задачи на пряжу в режиме сеанса
# bin/flink run examples/batch/WordCount.jar --input hdfs://master:8020/wordcount.txt

5. Закройте режим сеанса и убейте запущенные задачи.

yarn application kill

рекомендация

отblog.csdn.net/victory0508/article/details/131361901
рекомендация