Добрый день! Сегодня мы рассмотрим установку Apache NIFI на ОС семейства Linux, CentOS8.
Apache NIFI— Apache NiFi — это программный проект от Apache Software Foundation, предназначенный для автоматизации обмена данными между программными системами. Он основан на программном обеспечении «NiagaraFiles», ранее разработанном АНБ, которое также является источником части его нынешнего названия — NiFi.
В качестве сервера мы будем использовать виртуальную машину со следующей конфигурацией:
CPU: 2 ядра
ОЗУ: 4Гб
HDD: 100гб
Подготовка к установке
Перед началом установки, установим пакет JAVA, Oracle JDK 8. Для этого подключимся к нашей виртуальной машине посредством утилиты WinSCP. Скопируем RPM пакет для установки JDK в домашнюю папку пользователя.
Подключимся по SSH к нашей виртуальной машине и выполним команду:
rpm -ihv jdk-8u151-linux-x64.rpm
По окончании установки проверим версию JAVA, командой:
java -version
Установка Apache NIFI
Создадим в корневой директории новый каталог, который назовем app, для этого выполним команду:
mkdir -p /app
Далее создадим отдельного пользователя, которого назовем nifi, пользователя можно создать используя команду:
useradd nifi
Далее зададим пользователю nifi пароль, чтобы задать пароль воспользуемся утилитой passwd:
passwd nifi
Изменим владельца каталога на пользователя nifi:
chown -R nifi:nifi /app
Для проверки владельца каталога и группы выполним: ll
Далее перейдем под пользователя nifi, после чего перейдем в каталог /app и произведем загрузку с официального сайта архива содержащего бинарные файлы:
su - nifi cd /app ls wget http://apache-mirror.rbc.ru/pub/apache/nifi/1.10.0/nifi-1.10.0-bin.tar.gz
Распакуем бинарный архив в текущий каталог /app при помощи утилиты tar и опции -xvf
tar -xvf nifi-1.10.0-bin.tar.gz
По окончании распаковки для более удобного процесса использования переименуем каталог nifi-1.10.0 просто в nifi и удалим скачанный ранее нами архив, чтобы он не занимал лишнее место.
ls mv nifi-1.10.0 nifi rm -f nifi-1.10.0-bin.tar.gz ls
Добавить в переменные окружения пользователя информацию о том, где находится домашний каталог JAVA, для этого отредактируем .bash_profile следующим образом:
vim ~/.bash_profile
И укажем в данном файле следующую строку:
export JAVA_HOME=/usr/java/latest
После чего сохраним файл.
Так как, чтобы применился новый профайл пользователя нам надо либо выполнить: source ~/.bash_profile, либо выйти и заново зайти под пользователя nifi при помощи команды su -, а также по причине того что нам необходимо открыть порт 8080, чтобы проверить подключение к nifi, то выйдет из под пользователя nifi, откроем порт и снова откроем сессию пользователя nifi через su -.
exitfirewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
su - nifi
Проверим, что ранее заданная переменная $JAVA_HOME видна текущему пользователю и установлена правильно, а также проверим что версия текущего JDK не ниже 8:
echo $JAVA_HOME java -version
Теперь запустим непосредственно наш Apache NIFI для этого перейдем в каталог /app/nifi/bin и выполним следующую команду для запуска.
cd /app/nifi/bin pwd ls ./nifi.sh start
Так как NiFi уже содержит web сервер, а порт виртуальной машины мы уже открыли, то проверим подключения из браузера для этого укажем http://192.168.132.130:8080
Перед нами появится страница с которой по истечении 5 секунд мы будем переадресованы на главную страницу Apache NiFi.
На этом установка и запуск Apache NiFI завершены.
Статья о том, как запустить NiFi в качестве сервиса будет тут.
Статья о том, как изменить порт и сделать прокси при помощи nginx будет здесь.
Статья о настройки авторизации пользователя Администратора будет здесь.
Статья о настройки авторизации к NiFi посредством AD будет тут.
1 comments On Установка Apache NIFI
Не так давно мы столкнулись с выбором решения для загрузки данных из внешних источников в кластер Hadoop. Продолжительное время для решения подобных задач у нас использовался Apache Flume. К Flume в целом не было никаких нареканий, кроме нескольких моментов, которые нас не устраивали. были отказоустойчивость и масштабирование. Для тяжелых загрузок, например, по syslog, нужно было настраивать несколько агентов Flume и ставить перед ними балансировщик. Все это затем нужно было как-то мониторить и восстанавливать в случае сбоя.