Установка apache nifi 1.13

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