Big Data NiFi (5): распределенная установка NiFi
Big Data NiFi (5): распределенная установка NiFi

Распределенная установка NiFi

1. Зачем нужен NiFi-кластер?

Пользователи NiFi DataFlow Manager (DFM) могут обнаружить, что использования одного экземпляра NiFi на одном сервере недостаточно для обработки имеющегося у них объема данных. Таким образом, одно из решений — запустить один и тот же поток данных на нескольких серверах NiFi. Однако это создает проблемы управления, поскольку каждый раз, когда DFM хочет изменить или обновить поток данных, им приходится вносить эти изменения на каждом сервере, а затем отслеживать каждый сервер индивидуально. Кластеризуя серверы NiFi, вы можете добавить вычислительную мощность, а также единый интерфейс, через который можно изменять и контролировать поток данных. Кластеризация позволяет DFM вносить изменения только один раз, а затем реплицировать их на все узлы кластера. Через единый интерфейс DFM также может отслеживать состояние и состояние всех узлов.

В предыдущей статье мы представили роли в кластере NiFi. Координатор кластера отвечает за выполнение задач, управление узлами в кластере и предоставление данных для вновь добавленных узлов.

Кластер NiFi состоит из одного или нескольких узлов. Узлы обрабатывают данные о состоянии и состоянии координатору кластера посредством тактовых импульсов. По умолчанию узлы отправляют тактовые импульсы каждые 5 секунд, если координатор кластера выходит из строя в течение 5 секунд. , Когда от узла будет получено тактовое сообщение, узел будет отключен.

Каждый кластер имеет главный узел, и на главном узле может быть запущен «независимый процессор». Zookeeper используется для автоматического выбора главного узла. Пользователи могут просматривать главный узел в текущем кластере через интерфейс WebUI. Вышеупомянутый «независимый процессор», работающий на главном узле, относится к тому факту, что в кластере NiFi процессор, обрабатывающий поток данных, работает на каждом узле, и мы не хотим, чтобы один и тот же поток данных обрабатывался процессором на каждом узле. node., например: процессор GetSFTP извлекает данные из удаленного каталога. Если процессор GetSFTP работает на каждом узле кластера и одновременно извлекает данные из одного и того же удаленного каталога, данные будут обрабатываться повторно, поэтому мы можем обрабатывать их. GetSFTP Для процессора установлен режим «автономный процессор», что означает, что процессор будет работать только на главном узле. При соответствующей конфигурации потока данных главный узел может получать данные, а затем выполнять балансировку нагрузки среди других узлов в кластере.

Распределенная установка NiFi может использовать встроенный Zookeeper или вы можете использовать кластер Zookeeper, установленный самостоятельно. После тестирования с использованием внешнего Zokeeper для установки кластера NiFi будет установлена ​​версия Zookeeper, соответствующая NiFi1.13.0. не менее 3,5 и выше. Поскольку разные версии NiFi используют разные версии Zookeeper, для завершения построения кластера NiFi рекомендуется использовать встроенный Zookeeper.

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

Используйте встроенный Zookeeper для создания кластера NiFi. Для настройки узлов Zookeeper также требуется нечетное количество узлов. Здесь для настройки встроенного Zookeeper используются также три узла. Этапы строительства следующие:

1. Разделите узлы, загрузите и распакуйте установочный пакет NiFi.

Для установки кластера NiFi можно использовать несколько узлов. Здесь для установки кластера NiFi выбраны три узла: node1, node2 и node3. JDK8 необходимо установить на каждом узле.

Язык кода:javascript
копировать
#Загрузить и распаковать установочный пакет
[root@node1 software]# tar -zxvf ./nifi-1.13.0-bin.tar.gz

#Отправляем установочный пакет на узлы node2 и node3
[root@node1 software]# scp -r ./nifi-1.13.0 node2:/software/
[root@node1 software]# scp -r ./nifi-1.13.0 node3:/software/

2. Настройте и используйте встроенный Zookeeper.

Отредактируйте файл $NIFI_HOME/conf/zookeeper.properties в каждом узле 1, узле 2 и узле 3 и добавьте следующий контент (будьте осторожны, удалите последнюю строку этого файла перед его добавлением), чтобы настроить Zookeeper:

Язык кода:javascript
копировать
#Настраиваем номер порта Zookeeper,Чтобы избежать конфликтов портов,Можно настроить2182
clientPort=2182
#Настраиваем IP-адреса для разных сервисов
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

Создайте новую папку $NIFI_HOME/state/zookeeper на каждом узле node1, node2 и node3. Создайте файл myid в этой папке и запишите 1, 2 и 3 соответственно.

Язык кода:javascript
копировать
#в узлы узле1, node2, node3 создают пути Zookeeper
cd /software/nifi-1.13.0
mkdir -p ./state/zookeeper

#в узле1 Создайте файл myid в $NIFI_HOME/state/zookeeper и напишите 1.
#в узле2 Создайте файл myid в $NIFI_HOME/state/zookeeper и напишите 2.
#в узле3 Создайте файл myid в $NIFI_HOME/state/zookeeper и напишите 3.

3. Отредактируйте файл $NIFI_HOME/conf/nifi.properties на каждом узле.

Ниже в качестве примера используется конфигурация node1:

Язык кода:javascript
копировать
#Укажите, использует ли NiFi встроенный Zookeeper, значение по умолчанию — false
nifi.state.management.embedded.zookeeper.start=true

#Настроить хост-узел Http, каждый узел имеет разную конфигурацию хоста
nifi.web.http.host=node1
#Настраиваем HTTP-порт, значение по умолчанию — 8080.
nifi.web.http.port=8989

#Установите значение true, если экземпляр является узлом в кластере. Значение по умолчанию — ложь
nifi.cluster.is.node=true
#Полный адрес узла. По умолчанию пусто, конфигурация каждого узла различна.
nifi.cluster.node.address=node1
#Порт протокола узла. По умолчанию пусто
nifi.cluster.node.protocol.port=28001
#Заранее укажите количество узлов, необходимое в кластере для выбора потоков. Это позволяет узлам кластера избежать длительного ожидания перед началом обработки.
nifi.cluster.flow.election.max.candidates=1

#Подключаем встроенный адрес подключения ZooKeeper
nifi.zookeeper.connect.string=node1:2182,node2:2182,node3:2182

Примечание. При настройке вышеуказанного файла nifi.properties на каждом узле следующие элементы конфигурации различны для каждого узла:

Язык кода:javascript
копировать
Узлу #node2/3 необходимо настроить файл nifi.properties и изменить соответствующий IP-адрес.
nifi.web.http.host=node2/node3
nifi.cluster.node.address=node2/node3

4. Настройте файл $NIFI_HOME/conf/state-management.xml для каждого узла node1, node2 и node3.

Язык кода:javascript
копировать
<cluster-provider>
    <id>zk-provider</id>
    <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
    <property name="Connect String">node1:2182,node2:2182,node3:2182</property>
    <property name="Root Node">/nifi</property>
    <property name="Session Timeout">10 seconds</property>
    <property name="Access Control">Open</property>
</cluster-provider>

5. Зарегистрируйте системные службы nifi на узлах node1, node2 и node3 соответственно и запустите nifi соответственно.

Язык кода:javascript
копировать
#в Узлы узле1, node2 и node3 регистрируют службу nifi соответственно.
cd /software/nifi-1.13.0/bin
./nifi.sh install
Service nifi installed

#в узле1、node2、узлы node3 запускают кластер отдельно
запуск службы нифи

6. Доступ к веб-интерфейсу

После запуска вам нужно подождать некоторое время, чтобы получить доступ к WebUI. через узел1,node2,Любой узел из трех узлов node3 может получить доступ к кластеру NiFi.,Войдите в браузерhttp://node1:8989/nifi/ Получите доступ к кластеру NiFi. Просмотрите главный узел кластера NiFi:

3. Используйте внешний Zookeeper для создания кластера NiFi.

Используйте внешний Zookeeper для создания кластера NiFi. Для NiFi 1.13.0 требуется Zookeeper версии 3.5 или выше. Этапы строительства следующие:

1. Разделите узлы и подготовьте базовую среду.

Для установки кластера NiFi можно использовать несколько узлов. Здесь для установки кластера NiFi выбраны три узла: node1, node2 и node3. JDK8 необходимо установить на каждом узле.

2. Загрузите и распакуйте установочный пакет NiFi на узле 1 и отредактируйте файл $NIFI_HOME/conf/nifi.properties.

Язык кода:javascript
копировать
#Настраиваем хост-узел HTTP
nifi.web.http.host=192.168.179.4

#Настраиваем HTTP-порт, значение по умолчанию — 8080.
nifi.web.http.port=8989

#Установите значение true, если экземпляр является узлом в кластере. Значение по умолчанию — ложь
nifi.cluster.is.node=true
#Полный адрес узла. По умолчанию пусто
nifi.cluster.node.address=192.168.179.4
#Порт протокола узла. По умолчанию пусто
nifi.cluster.node.protocol.port=28001
#Заранее укажите количество узлов, необходимое в кластере для выбора потоков. Это позволяет узлам кластера избежать длительного ожидания перед началом обработки.
nifi.cluster.flow.election.max.candidates=1

#Подключаемся к внешнему адресу подключения ZooKeeper
nifi.zookeeper.connect.string=node3:2181,node4:2181,node5:2181

3. Настройте $NIFI_HOME/conf/state-management.xml на узле node1, чтобы настроить внешний кластер Zookeeper.

Язык кода:javascript
копировать
<cluster-provider>
    <id>zk-provider</id>
    <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
    <property name="Connect String">node3:2181,node4:2181,node5:2181</property>
    <property name="Root Node">/nifi</property>
    <property name="Session Timeout">10 seconds</property>
    <property name="Access Control">Open</property>
</cluster-provider>

4. Отправьте NiFi, настроенный на узле 1, на узел 2 и узел 3 и настройте его на узле 2/3.

Язык кода:javascript
копировать
[root@node1 software]# scp -r ./nifi-1.13.0 node2:/software/
[root@node1 software]# scp -r ./nifi-1.13.0 node3:/software/

Узлу #node2/3 необходимо настроить файл nifi.properties и изменить соответствующий IP-адрес.
nifi.web.http.host=192.168.179.5/6
nifi.cluster.node.address=192.168.179.5/6

5. Запустите Zookeeper.

6. Зарегистрируйте системные службы nifi на узлах node1, node2 и node3 соответственно и запустите nifi соответственно.

Язык кода:javascript
копировать
#в Узлы узле1, node2 и node3 регистрируют службу nifi соответственно.
cd /software/nifi-1.13.0/bin
./nifi.sh install
Service nifi installed

#в узле1、node2、узлы node3 запускают кластер отдельно
запуск службы нифи

7. Получите доступ к веб-интерфейсу и просмотрите главный узел кластера.

После запуска вам нужно подождать некоторое время, чтобы получить доступ к WebUI. через узел1,node2,Любой узел из трех узлов node3 может получить доступ к кластеру NiFi.,Войдите в браузерhttp://node1:8989/nifi/ Получите доступ к кластеру NiFi. Просмотрите главный узел кластера NiFi:

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.