Как стать автором
Обновить

Установка NiFi 1.14.0 на CentOS 8

  • 01 Параметры сервера

  • 02 Установка

  • 03 Запуск NiFi

  • 04 Настройка

  • 05 Тюнинг OS

01 Параметры сервера

Установка по данной инструкции проводилась на разнообразные виртуальные машины в разных средах. Минимальная конфигурация, на которой проверялась установка следующая:

  • OS - CentOS8

  • 2 vCPU

  • RAM 2 ГБ

  • HDD 20 ГБ

02 Установка

Основной мануал установки https://nifi.apache.org/docs/nifi-docs/html/getting-started.html#downloading-and-installing-nifi

Требования к OS - System Requirements

подготовка системы

$ sudo -i # заходим в root
# yum update -y
# yum install bash-completion wget -y

Установка Java8 и добавление системной переменной $JAVA_HOME

# dnf install java-1.8.0-openjdk-devel -y
# echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/jre" >> ~/.bash_profile
# source ~/.bash_profile # применение системной переменной

проверяем, что Java установлена

# java -version
# echo $JAVA_HOME

ожидаемый вывод результа:

> openjdk version "1.8.0_302"
> OpenJDK Runtime Environment (build 1.8.0_302-b08)
> OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)

> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/jre

Отключаем selinux

# vi /etc/selinux/config

строку SELINUX=enforcing заменяем на SELINUX=disabled

Результат должен выглядеть примерно так:

# This file controls the state of SELinux on the system.
SELINUX= can take one of these three values:
enforcing - SELinux security policy is enforced.
permissive - SELinux prints warnings instead of enforcing.
disabled - No SELinux policy is loaded.
SELINUX=disabled
SELINUXTYPE= can take one of these three values:
targeted - Targeted processes are protected,
minimum - Modification of targeted policy. Only selected processes are protected.
mls - Multi Level Security protection.
SELINUXTYPE=targeted

перезагружаем машину

# reboot

После перезагрузки заходим под root

$ sudo -i

Cоздаём директорию /opt/nifi-server куда будет установлена программа

# mkdir /opt/nifi-server

заходим в директорию /opt/nifi-server и скачиваем дистрибьютив, в нашем случае последняя версия - 1.14.0

после распаковки, для простоты переименовываем папку /opt/nifi-server/nifi-1.14.0 в /opt/nifi-server/nifi удаляем архив, чтобы освободить место на диске (1.4Gb)

# cd /opt/nifi-server
# wget https://apache-mirror.rbc.ru/pub/apache/nifi/1.14.0/nifi-1.14.0-bin.tar.gz
# tar -xvf nifi-1.14.0-bin.tar.gz
# mv nifi-1.14.0 nifi
# rm -f nifi-1.14.0-bin.tar.gz

в результате путь к скрипту запуска должен быть следующим /opt/nifi-server/nifi/bin/nifi.sh

Установка закончена, первый запуск должен производиться перед настройкой nifi в файле /opt/nifi-server/nifi/conf/nifi.properties иначе сервер запускаться не будет.

03 Запуск NiFi

Основная страница How to install and start NiFi

/opt/nifi-server/nifi/bin/nifi.sh можно запускать с следующими параметрами:

/opt/nifi-server/nifi/bin/nifi.sh <command>:
start: starts NiFi in the background
stop: stops NiFi that is running in the background
status: provides the current status of NiFi
run: runs NiFi in the foreground and waits for a Ctrl-C to initiate shutdown of NiFi
install: installs NiFi as a service that can then be controlled via
service nifi start
service nifi stop
service nifi status

запуск NiFi

# /opt/nifi-server/nifi/bin/nifi.sh start

ожидаемый вывод

Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/jre
NiFi home: /opt/nifi-server/nifi
Bootstrap Config File: /opt/nifi-server/nifi/conf/bootstrap.conf

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

# tail -f /opt/nifi-server/nifi/logs/nifi-app.log

Примерный вывод окончания загрузки:

2029-09-09 00:00:01,643 INFO [main] org.apache.nifi.web.server.JettyServer http://101.151.1.111:8080/nifi
2029-09-09 00:00:01,645 INFO [main] org.apache.nifi.BootstrapListener Successfully initiated communication with Bootstrap
2029-09-09 00:00:01,645 INFO [main] org.apache.nifi.NiFi Controller initialization took 16124837417 nanoseconds (16 seconds).

После успешного запуска настраиваем запуск NiFi как службу

# /opt/nifi-server/nifi/bin/nifi.sh stop
# /opt/nifi-server/nifi/bin/nifi.sh install
# systemctl daemon-reload
# systemctl start nifi

перезагружаем машину

# reboot

После перезагрузки виртуальной машины nifi должен запускаться автоматически

04 Настройка

Основная страница - System Properties После перезагрузки заходим под root

$ sudo -i

изменение параметров nifi.properties

$ vi /opt/nifi-server/nifi/conf/nifi.properties

в файле делаем следующие изменения: nifi.remote.input.secure=false nifi.web.http.host=127.0.0.1 nifi.web.http.port=8080 (для удобства меняем порт на общепринятый, можно использовать другой, главное потом обращаться по указанному порту) nifi.web.http.network.interface.default=eth0 (eth0 интерфейс, на котором находится наш IP доступа) очищаем значения следующих ключей nifi.web.https.host= nifi.web.https.port= настраиваем запуск NiFi как службу

# systemctl restart nifi

После пары минут перезагрузки GUI NiFi без логина и пароля доступен по адресу http://<IP-адрес>:8080/nifi/

05 Тюнинг OS

Основная страница - Сonfiguration best practices

# vi /etc/security/limits.conf

установить:

hard  nofile  50000
soft  nofile  50000
hard  nproc  10000
soft  nproc  10000
# vi /etc/security/limits.d/90-nproc.conf

установить:

soft  nproc  10000
# sudo sysctl -w net.ipv4.ip_local_port_range="10000 65000"
# vi /etc/sysctl.conf

установить: vm.swappiness = 0 финальная перезагрузка

# reboot
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.