Пользователи 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.
Используйте встроенный Zookeeper для создания кластера NiFi. Для настройки узлов Zookeeper также требуется нечетное количество узлов. Здесь для настройки встроенного Zookeeper используются также три узла. Этапы строительства следующие:
Для установки кластера NiFi можно использовать несколько узлов. Здесь для установки кластера NiFi выбраны три узла: node1, node2 и node3. JDK8 необходимо установить на каждом узле.
#Загрузить и распаковать установочный пакет
[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/
Отредактируйте файл $NIFI_HOME/conf/zookeeper.properties в каждом узле 1, узле 2 и узле 3 и добавьте следующий контент (будьте осторожны, удалите последнюю строку этого файла перед его добавлением), чтобы настроить Zookeeper:
#Настраиваем номер порта 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 соответственно.
#в узлы узле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.
Ниже в качестве примера используется конфигурация node1:
#Укажите, использует ли 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 на каждом узле следующие элементы конфигурации различны для каждого узла:
Узлу #node2/3 необходимо настроить файл nifi.properties и изменить соответствующий IP-адрес.
nifi.web.http.host=node2/node3
nifi.cluster.node.address=node2/node3
<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>
#в Узлы узле1, node2 и node3 регистрируют службу nifi соответственно.
cd /software/nifi-1.13.0/bin
./nifi.sh install
Service nifi installed
#в узле1、node2、узлы node3 запускают кластер отдельно
запуск службы нифи
После запуска вам нужно подождать некоторое время, чтобы получить доступ к WebUI. через узел1,node2,Любой узел из трех узлов node3 может получить доступ к кластеру NiFi.,Войдите в браузерhttp://node1:8989/nifi/ Получите доступ к кластеру NiFi. Просмотрите главный узел кластера NiFi:
Используйте внешний Zookeeper для создания кластера NiFi. Для NiFi 1.13.0 требуется Zookeeper версии 3.5 или выше. Этапы строительства следующие:
Для установки кластера NiFi можно использовать несколько узлов. Здесь для установки кластера NiFi выбраны три узла: node1, node2 и node3. JDK8 необходимо установить на каждом узле.
#Настраиваем хост-узел 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
<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>
[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
#в Узлы узле1, node2 и node3 регистрируют службу nifi соответственно.
cd /software/nifi-1.13.0/bin
./nifi.sh install
Service nifi installed
#в узле1、node2、узлы node3 запускают кластер отдельно
запуск службы нифи
После запуска вам нужно подождать некоторое время, чтобы получить доступ к WebUI. через узел1,node2,Любой узел из трех узлов node3 может получить доступ к кластеру NiFi.,Войдите в браузерhttp://node1:8989/nifi/ Получите доступ к кластеру NiFi. Просмотрите главный узел кластера NiFi: