Thank you for reading this post, don't forget to subscribe!
Apache NiFi — платформа приема данных в режиме реального времени, которая может передавать и управлять передачей данных между различными источниками и системами назначения. Он поддерживает широкий спектр форматов данных, таких как журналы, данные о географическом местоположении, социальные сети и т. Д. Он также поддерживает множество протоколов, таких как SFTP, HDFS и KAFKA, и т. Д. Эта поддержка широкого спектра источников данных и протоколов делает эту платформу популярной в многие ИТ-организации.
Apache NiFi — общие характеристики
Основные характеристики Apache NiFi следующие:
- Apache NiFi предоставляет веб-интерфейс пользователя, который обеспечивает плавное взаимодействие между дизайном, управлением, обратной связью и мониторингом.
- Это очень настраиваемый. Это помогает пользователям с гарантированной доставкой, низкой задержкой, высокой пропускной способностью, динамическим назначением приоритетов, обратным давлением и изменением потоков во время выполнения.
- Он также предоставляет модуль происхождения данных для отслеживания и мониторинга данных от начала до конца потока.
- Разработчики могут создавать свои собственные процессоры и задачи отчетности в соответствии со своими потребностями.
- NiFi также обеспечивает поддержку безопасных протоколов, таких как SSL, HTTPS, SSH и других шифрований.
- Он также поддерживает управление пользователями и ролями, а также может быть настроен с LDAP для авторизации.
Apache NiFi предоставляет веб-интерфейс пользователя, который обеспечивает плавное взаимодействие между дизайном, управлением, обратной связью и мониторингом.
Это очень настраиваемый. Это помогает пользователям с гарантированной доставкой, низкой задержкой, высокой пропускной способностью, динамическим назначением приоритетов, обратным давлением и изменением потоков во время выполнения.
Он также предоставляет модуль происхождения данных для отслеживания и мониторинга данных от начала до конца потока.
Разработчики могут создавать свои собственные процессоры и задачи отчетности в соответствии со своими потребностями.
NiFi также обеспечивает поддержку безопасных протоколов, таких как SSL, HTTPS, SSH и других шифрований.
Он также поддерживает управление пользователями и ролями, а также может быть настроен с LDAP для авторизации.
Apache NiFi — основные понятия
Основные понятия Apache NiFi следующие:
- Группа процессов — это группа потоков NiFi, которая помогает пользователю управлять и поддерживать потоки в иерархическом порядке.
- Поток — создается для соединения разных процессоров для передачи и изменения данных, если это необходимо, из одного источника данных или источников в другие источники данных назначения.
- Процессор . Процессор — это Java-модуль, отвечающий за выборку данных из системы источников или сохранение их в системе назначения. Другие процессоры также используются для добавления атрибутов или изменения содержимого в потоковом файле.
- Flowfile — это основное использование NiFi, которое представляет собой единый объект данных, выбранных из исходной системы в NiFi. NiFiprocessor делает изменения в потоковый файл, в то время как он перемещается от исходного процессора к месту назначения. Различные процессы, такие как CREATE, CLONE, RECEIVE и т. Д., Выполняются в поточном файле различными процессорами в потоке.
- Событие — события представляют изменение потока файла при прохождении потока NiFi. Эти события отслеживаются в происхождении данных.
- Происхождение данных — это хранилище. Он также имеет пользовательский интерфейс, который позволяет пользователям проверять информацию о потоковом файле и помогает в устранении неполадок, возникающих при обработке потокового файла.
Группа процессов — это группа потоков NiFi, которая помогает пользователю управлять и поддерживать потоки в иерархическом порядке.
Поток — создается для соединения разных процессоров для передачи и изменения данных, если это необходимо, из одного источника данных или источников в другие источники данных назначения.
Процессор . Процессор — это Java-модуль, отвечающий за выборку данных из системы источников или сохранение их в системе назначения. Другие процессоры также используются для добавления атрибутов или изменения содержимого в потоковом файле.
Flowfile — это основное использование NiFi, которое представляет собой единый объект данных, выбранных из исходной системы в NiFi. NiFiprocessor делает изменения в потоковый файл, в то время как он перемещается от исходного процессора к месту назначения. Различные процессы, такие как CREATE, CLONE, RECEIVE и т. Д., Выполняются в поточном файле различными процессорами в потоке.
Событие — события представляют изменение потока файла при прохождении потока NiFi. Эти события отслеживаются в происхождении данных.
Происхождение данных — это хранилище. Он также имеет пользовательский интерфейс, который позволяет пользователям проверять информацию о потоковом файле и помогает в устранении неполадок, возникающих при обработке потокового файла.
Преимущества Apache NiFi
- Apache NiFi позволяет получать данные с удаленных компьютеров с помощью SFTP и гарантирует передачу данных.
- Apache NiFi поддерживает кластеризацию, поэтому он может работать на нескольких узлах с одинаковым потоком, обрабатывая разные данные, что повышает производительность обработки данных.
- Он также предоставляет политики безопасности на уровне пользователя, группы процессов и других модулей.
- Его пользовательский интерфейс также может работать по протоколу HTTPS, что делает взаимодействие пользователей с NiFi безопасным.
- NiFi поддерживает около 188 процессоров, и пользователь также может создавать собственные плагины для поддержки широкого спектра систем данных.
Apache NiFi позволяет получать данные с удаленных компьютеров с помощью SFTP и гарантирует передачу данных.
Apache NiFi поддерживает кластеризацию, поэтому он может работать на нескольких узлах с одинаковым потоком, обрабатывая разные данные, что повышает производительность обработки данных.
Он также предоставляет политики безопасности на уровне пользователя, группы процессов и других модулей.
Его пользовательский интерфейс также может работать по протоколу HTTPS, что делает взаимодействие пользователей с NiFi безопасным.
NiFi поддерживает около 188 процессоров, и пользователь также может создавать собственные плагины для поддержки широкого спектра систем данных.
Недостатки Apache NiFi
- Когда узел отключается от кластера NiFi, когда пользователь вносит в него какие-либо изменения, то flow.xml становится недействительным. Узел не может подключиться обратно к кластеру, если администратор не скопирует вручную файл flow.xml с подключенного узла.
- Apache NiFi имеет проблему с сохранением состояния в случае переключения основного узла, что иногда делает процессоры неспособными получать данные из систем источников.
Когда узел отключается от кластера NiFi, когда пользователь вносит в него какие-либо изменения, то flow.xml становится недействительным. Узел не может подключиться обратно к кластеру, если администратор не скопирует вручную файл flow.xml с подключенного узла.
Apache NiFi имеет проблему с сохранением состояния в случае переключения основного узла, что иногда делает процессоры неспособными получать данные из систем источников.
Apache NiFi — Основные понятия
Apache NiFi состоит из веб-сервера, контроллера потока и процессора, который работает на виртуальной машине Java. Он также имеет 3 репозитория Flowfile Repository, Content Repository и Provenance Repository
Flowfile Repository
Этот репозиторий хранит текущее состояние и атрибуты каждого потокового файла, который проходит через потоки данных Apache NiFi. Расположение этого хранилища по умолчанию находится в корневом каталоге apache NiFi. Расположение этого репозитория можно изменить, изменив свойство с именем «nifi.flowfile.repository.directory».
Репозиторий контента
Этот репозиторий содержит все содержимое всех потоковых файлов NiFi. Его каталог по умолчанию также находится в корневом каталоге NiFi, и его можно изменить с помощью свойства «org.apache.nifi.controller.repository.FileSystemRepository». Этот каталог занимает много места на диске, поэтому желательно иметь достаточно места на установочном диске.
Хранилище прованс
Репозиторий отслеживает и хранит все события всех потоковых файлов, которые поступают в NiFi. Существует два репозитория провенанса — изменчивое хранилище провенанса (в этом репозитории все данные провенанса теряются после перезапуска) и постоянное хранилище провенанса . Его каталог по умолчанию также находится в корневом каталоге NiFi, и его можно изменить с помощью свойств «org.apache.nifi.provenance.PersistentProvenanceRepository» и «org.apache.nifi.provenance.VolatileProvenanceRepositor» для соответствующих репозиториев
больше подробностей можно найти тут:
https://coderlessons.com/tutorials/java-tekhnologii/uznaite-apache-nifi/apache-nifi-kratkoe-rukovodstvo
приступим к установке:
yum install java-1.8.0-openjdk
yum install java-1.8.0-openjdk-devel
cat /etc/profile.d/java.sh
#/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
bash /etc/profile.d/java.sh
adduser nifi
mkdir /opt/nifi
curl -o /opt/nifi/nifi-1.13.0-bin.tar.gz http://apache.mirror.digitalpacific.com.au/nifi/1.13.0/nifi-1.13.0-bin.tar.gz
curl -o /opt/nifi/nifi-toolkit-1.13.0-bin.tar.gz http://apache.mirror.digitalpacific.com.au/nifi/1.13.0/nifi-toolkit-1.13.0-bin.tar.gz
cd /opt/nifi/
tar -xzf nifi-1.13.0-bin.tar.gz
tar -xzf nifi-toolkit-1.13.0-bin.tar.gz
chown -R nifi:nifi /opt/nifi/
меняем порт:
vim /opt/nifi/nifi-1.13.0/conf/nifi.properties
nifi.web.http.port=38080
/opt/nifi/nifi-1.13.0/bin/nifi.sh install
service nifi start
curl -i http://localhost:38080/nifi
ну а чтобы можно было заходить по айпишнику правим:
cat /opt/nifi/nifi-1.13.0/conf/nifi.properties | grep nifi.web.http.host
nifi.web.http.host=192.168.1.170
и рестартуем:
service nifi restart
можем теперь зайти проверить:
http://192.168.1.170:38080/nifi/
дальше описание как настроить ssl и связь с ldap
cd /opt/nifi/nifi-toolkit-1.13.0/bin/
./tls-toolkit.sh standalone -n localhost -C 'CN=admin, OU=NIFI'
mv CN\=admin_OU\=NIFI.p* localhost/
mv nifi-* localhost/
cp localhost/* /opt/nifi/nifi-1.13.0/conf/
cd /opt/nifi/nifi-1.13.0/conf/
cat nifi.properties | grep -i nifi.security.keystorePasswd
nifi.security.keystorePasswd=SmZOBEqoey1VbGd2Wc+Q6Zlojmo+acx75sad3bXRDWo
keytool -v -list -keystore keystore.jks (никакой пароль не вводим просто нажимаем enter)
cat CN\=admin_OU\=NIFI.password
WXWhq9s8d47ntnspETUXiVur+GXUbdzIuuvI8KH32DI
wget http://apache.mirror.serversaustralia.com.au//directory/apacheds/dist/2.0.0.AM26/apacheds-2.0.0.AM26-x86_64.rpm
rpm -ivh apacheds-2.0.0.AM26-x86_64.rpm
yum install -y openldap-clients
ldapsearch -D "uid=admin,ou=system" -w secret -p 10389 -h localhost -b "ou=system"
cd /opt/nifi/nifi-toolkit-1.13.0/bin/
./tls-toolkit.sh standalone -C 'CN=initial_user, OU=NIFI'
cat CN\=initial_user_OU\=NIFI.password
pdnuGylt35XeCGuv7gazyIxoiVQPEMFR8GklE65YTFs