Do uruchomienia kompletnego środowiska niezbędne jest narzędzie o nazwie Apache NiFi Registry. Rozwiązanie to ma za zadanie przechowywać i kontrolować wersje zbudowanych przez nas przepływów danych. W ten sposób, gdy pracujemy nad przepływem, a w tym samym czasie środowisko ulegnie awarii, cała nasza praca zostanie bezpiecznie zachowana w NiFi Registry. Kolejnym dużym argumentem przemawiającym na korzyść NiFi Registry jest kontrola wersji. W przypadku gdy posiadamy wiele serwerów hostujących NiFi, możemy w łatwy sposób kontrolować spójność oraz integracje wersji przepływów między instancjami. W poniższym poradniku przedstawię trochę niestandardową konfigurację, ponieważ skonfiguruje NiFi Registry tak, aby przechowywał wersje przepływów danych przy użyciu serwisu Github.
Aktualizacja systemu
Każdą instalację zaczynamy od aktualizacji pakietów systemu operacyjnego
sudo dnf update -y Instalacja pakietu Java
Do działania NiFi Registry wymagany jest zainstalowany pakiet Java OpenJDK 8 lub 11.
sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-develUtworzenie repozytorium
Następnie, utwórzmy repozytorium na Github.

Wygenerowanie tokena
Do konfiguracji wymagany jest „Personal access token”, aby wygenerować token należy przejść do „Developer settings” i kliknąć „Generate new token”, a następnie zaznaczyć odpowiednie opcje jak na poniższy zrzucie ekranu.

Instalacja NiFi Registry
Z racji tego, że poprzednio do instalacji NiFi użyliśmy wersji 1.15.3 taką też wykorzystamy dla NiFi Registry, zatem należy pobrać i rozpakować odpowiednią wersję za pomocą poleceń.
sudo cd /data
sudo wget https://archive.apache.org/dist/nifi/1.15.3/nifi-registry-1.15.3-bin.tar.gz
sudo tar vzxf nifi-registry-1.15.3-bin.tar.gz
sudo ln -s /data/nifi-registry-1.15.3 /data/nifi-registry
sudo cd nifi-registryNastępnie, w pliku nifi-registry.properties, należy edytować poniższą wartość.
sudo nano conf/nifi-registry.propertiesnifi.registry.web.http.host=localhost.lanDodaj service, który pozwoli poprzez komendę systemctl uruchomić NiFi Registry.
sudo bin/nifi-registry.sh installNastępnie, należy zintegrować repozytorium Github z NiFi Registry, w tym celu do katalogu z NiFi Registry pobierzmy wcześniej przygotowane repozytorium.
git clone https://github.com/username/versioned_flows.gitW pliku konfiguracyjnym providers.xml należy za komentować sekcje org.apache.nifi.registry.provider.flow.FileSystemFlowPersistenceProvider
oraz od komentować
org.apache.nifi.registry.provider.flow.git.GitFlowPersistenceProvider
sudo nano conf/providers.xml <!--
<flowPersistenceProvider>
<class>org.apache.nifi.registry.provider.flow.FileSystemFlowPersistenceProvider</class>
<property name="Flow Storage Directory">./flow_storage</property>
</flowPersistenceProvider>
--> <flowPersistenceProvider>
<class>org.apache.nifi.registry.provider.flow.git.GitFlowPersistenceProvider</class>
<property name="Flow Storage Directory">./versioned_flows</property>
<property name="Remote To Push">origin</property>
<property name="Remote Access User">username</property>
<property name="Remote Access Password">personal_access_token</property>
<property name="Remote Clone Repository">https://github.com/username/versioned_flows.git</property>
</flowPersistenceProvider>Wymagane jest zaktualizować daemon oraz uruchomić NiFi Registry, ostatnie polecenie spowoduje, że NiFi Registry będzie uruchamiany wraz z uruchomieniem maszyny.
sudo systemctl daemon-reload
sudo systemctl start nifi-registry
sudo systemctl enable nifi-registryKolejno, należy dodać NiFi Registry do konfiguracji NiFi.

Następnie, należy dodać nowy Bucket do NiFi Registry, który jest dostępny pod adresem http://localhost.lan:18080/nifi-registry, w którym będziemy zapisywać przepływy.

Dla przykładu dodamy flow do stworzonego wcześniej Bucketu.


W serwisie Github we wcześniej stworzonym repozytorium pojawił się nowy Bucket.

a także zapisany przepływ



