Apache NiFi - Kurzanleitung
Apache NiFi ist ein leistungsstarkes, benutzerfreundliches und zuverlässiges System zur Verarbeitung und Verteilung von Daten zwischen verschiedenen Systemen. Es basiert auf der von der NSA entwickelten Niagara Files-Technologie und wurde nach 8 Jahren an die Apache Software Foundation gespendet. Es wird unter der Apache License Version 2.0, Januar 2004, vertrieben. Die neueste Version für Apache NiFi ist 1.7.1.
Apache NiFi ist eine Echtzeit-Datenerfassungsplattform, die die Datenübertragung zwischen verschiedenen Quell- und Zielsystemen übertragen und verwalten kann. Es unterstützt eine Vielzahl von Datenformaten wie Protokolle, Geostandortdaten, soziale Feeds usw. Es unterstützt auch viele Protokolle wie SFTP, HDFS und KAFKA usw. Diese Unterstützung für eine Vielzahl von Datenquellen und Protokollen macht diese Plattform beliebt viele IT-Organisationen.
Allgemeine Funktionen von Apache NiFi-
Die allgemeinen Merkmale von Apache NiFi sind wie folgt:
Apache NiFi bietet eine webbasierte Benutzeroberfläche, die ein nahtloses Erlebnis zwischen Design, Steuerung, Feedback und Überwachung bietet.
Es ist sehr konfigurierbar. Dies hilft Benutzern bei garantierter Zustellung, geringer Latenz, hohem Durchsatz, dynamischer Priorisierung, Gegendruck und zur Änderung der Laufzeitabläufe.
Es bietet auch ein Datenherkunftsmodul zur Verfolgung und Überwachung von Daten vom Anfang bis zum Ende des Flusses.
Entwickler können ihre eigenen benutzerdefinierten Prozessoren und Berichtsaufgaben entsprechend ihren Anforderungen erstellen.
NiFi bietet auch Unterstützung für sichere Protokolle wie SSL, HTTPS, SSH und andere Verschlüsselungen.
Es unterstützt auch die Benutzer- und Rollenverwaltung und kann mit LDAP für die Autorisierung konfiguriert werden.
Apache NiFi-Schlüsselkonzepte
Die Schlüsselkonzepte von Apache NiFi lauten wie folgt:
Process Group - Es handelt sich um eine Gruppe von NiFi-Flows, mit deren Hilfe Benutzer Flows hierarchisch verwalten und verwalten können.
Flow - Es wird erstellt, um verschiedene Prozessoren miteinander zu verbinden, um Daten bei Bedarf von einer Datenquelle oder Quellen zu einer anderen Zieldatenquelle zu übertragen und zu ändern.
Processor- Ein Prozessor ist ein Java-Modul, das entweder Daten vom Sourcing-System abruft oder im Zielsystem speichert. Andere Prozessoren werden ebenfalls verwendet, um Attribute hinzuzufügen oder Inhalte in der Flussdatei zu ändern.
Flowfile- Es ist die grundlegende Verwendung von NiFi, die das einzelne Objekt der Daten darstellt, die aus dem Quellsystem in NiFi ausgewählt wurden. NiFiprocessormakes ändert sich in Flowfile, während es vom Quellprozessor zum Ziel wechselt. Verschiedene Ereignisse wie CREATE, CLONE, RECEIVE usw. werden von verschiedenen Prozessoren in einem Flow für die Flussdatei ausgeführt.
Event- Ereignisse repräsentieren die Änderung der Flussdatei beim Durchlaufen eines NiFi-Flusses. Diese Ereignisse werden in der Datenherkunft verfolgt.
Data provenance - Es handelt sich um ein Repository. Es verfügt außerdem über eine Benutzeroberfläche, über die Benutzer die Informationen zu einer Flussdatei überprüfen und bei der Fehlerbehebung bei Problemen helfen können, die während der Verarbeitung einer Flussdatei auftreten.
Apache NiFi Vorteile
Apache NiFi ermöglicht das Abrufen von Daten von Remotecomputern mithilfe von SFTP und garantiert die Datenherkunft.
Apache NiFi unterstützt Clustering, sodass es auf mehreren Knoten mit demselben Datenfluss unterschiedliche Daten verarbeiten kann, was die Leistung der Datenverarbeitung erhöht.
Es bietet auch Sicherheitsrichtlinien auf Benutzerebene, Prozessgruppenebene und anderen Modulen.
Die Benutzeroberfläche kann auch unter HTTPS ausgeführt werden, wodurch die Interaktion der Benutzer mit NiFi sicher wird.
NiFi unterstützt rund 188 Prozessoren und ein Benutzer kann auch benutzerdefinierte Plugins erstellen, um eine Vielzahl von Datensystemen zu unterstützen.
Apache NiFi Nachteile
Wenn der Knoten vom NiFi-Cluster getrennt wird, während ein Benutzer Änderungen daran vornimmt, wird die Datei flow.xml ungültig. Der Knoten kann keine Verbindung zum Cluster herstellen, es sei denn, der Administrator kopiert die Datei flow.xml manuell vom verbundenen Knoten.
Apache NiFi hat ein Problem mit der Statuspersistenz im Falle eines primären Knotenwechsels, wodurch Prozessoren manchmal nicht in der Lage sind, Daten von Sourcing-Systemen abzurufen.
Apache NiFi besteht aus einem Webserver, einem Flow Controller und einem Prozessor, der auf einer Java Virtual Machine ausgeführt wird. Es hat auch 3 Repositorys Flowfile Repository, Content Repository und Provenance Repository, wie in der folgenden Abbildung gezeigt.
Flowfile-Repository
Dieses Repository speichert den aktuellen Status und die Attribute jeder Flussdatei, die die Datenflüsse von Apache NiFi durchläuft. Der Standardspeicherort dieses Repositorys befindet sich im Stammverzeichnis von Apache NiFi. Der Speicherort dieses Repositorys kann durch Ändern der Eigenschaft "nifi.flowfile.repository.directory" geändert werden.
Inhalts-Repository
Dieses Repository enthält den gesamten Inhalt aller Flussdateien von NiFi. Das Standardverzeichnis befindet sich ebenfalls im Stammverzeichnis von NiFi und kann mit der Eigenschaft "org.apache.nifi.controller.repository.FileSystemRepository" geändert werden. Dieses Verzeichnis verwendet viel Speicherplatz auf der Festplatte, daher ist es ratsam, genügend Speicherplatz auf der Installationsdiskette zu haben.
Provenienz-Repository
Das Repository verfolgt und speichert alle Ereignisse aller Flussdateien, die in NiFi fließen. Es gibt zwei Herkunftsregister -volatile provenance repository (In diesem Repository gehen alle Herkunftsdaten nach dem Neustart verloren) und persistent provenance repository. Das Standardverzeichnis befindet sich ebenfalls im Stammverzeichnis von NiFi und kann mit den Eigenschaften "org.apache.nifi.provenance.PersistentProvenanceRepository" und "org.apache.nifi.provenance.VolatileProvenanceRepositor" für die jeweiligen Repositorys geändert werden.
In diesem Kapitel erfahren Sie mehr über die Einrichtung der Umgebung von Apache NiFi. Die Schritte zur Installation von Apache NiFi sind wie folgt:
Step 1- Installieren Sie die aktuelle Version von Java auf Ihrem Computer. Bitte stellen Sie das JAVA_HOME in Ihrem Computer ein. Sie können die Version wie folgt überprüfen:
Im Windows-Betriebssystem (über die Eingabeaufforderung) -
> java -version
Unter UNIX (mit Terminal):
$ echo $JAVA_HOME
Step 2 - DownloadApache NiFi von https://nifi.apache.org/download.html
Für Windows OS Download ZIP-Datei.
Für UNIX OSdownload TAR-Datei.
Docker-Bilder finden Sie unter folgendem Link https://hub.docker.com/r/apache/nifi/.
Step 3- Der Installationsprozess für Apache NiFi ist sehr einfach. Der Prozess unterscheidet sich mit dem Betriebssystem -
Windows OS - Entpacken Sie das Zip-Paket und Apache NiFi ist installiert.
UNIX OS - Extrahieren Sie die TAR-Datei an einem beliebigen Ort und der Logstash ist installiert.
$tar -xvf nifi-1.6.0-bin.tar.gz
Step 4- Öffnen Sie die Eingabeaufforderung und wechseln Sie in das bin-Verzeichnis von NiFi. Beispiel: C: \ nifi-1.7.1 \ bin, und führen Sie die Datei run-nifi.bat aus.
C:\nifi-1.7.1\bin>run-nifi.bat
Step 5- Es dauert einige Minuten, bis die NiFi-Benutzeroberfläche eingerichtet ist. Ein Benutzer kann nifi-app.log überprüfen. Sobald die NiFi-Benutzeroberfläche aktiviert ist, kann ein Benutzer eingebenhttp://localhost:8080/nifi/ um auf die Benutzeroberfläche zuzugreifen.
Apache ist eine webbasierte Plattform, auf die ein Benutzer über die Web-Benutzeroberfläche zugreifen kann. Die NiFi-Benutzeroberfläche ist sehr interaktiv und bietet eine Vielzahl von Informationen zu NiFi. Wie in der Abbildung unten gezeigt, kann ein Benutzer auf Informationen zu den folgenden Attributen zugreifen:
- Aktive Threads
- Gesamtzahl der Daten in der Warteschlange
- Remote-Prozessgruppen übertragen
- Remote-Prozessgruppen werden nicht übertragen
- Komponenten ausführen
- Gestoppte Komponenten
- Ungültige Komponenten
- Deaktivierte Komponenten
- Aktuelle versionierte Prozessgruppen
- Lokal geänderte versionierte Prozessgruppen
- Veraltete versionierte Prozessgruppen
- Lokal geänderte und veraltete versionierte Prozessgruppen
- Synchronisierungsfehler Versionierte Prozessgruppen
Komponenten von Apache NiFi
Die Apache NiFi-Benutzeroberfläche besteht aus folgenden Komponenten:
Prozessoren
Der Benutzer kann das Prozesssymbol auf die Leinwand ziehen und den gewünschten Prozessor für den Datenfluss in NiFi auswählen.
Eingangsanschluss
Das folgende Symbol wird auf die Leinwand gezogen, um den Eingabeport in einen beliebigen Datenfluss einzufügen.
Der Eingabeport wird verwendet, um Daten vom Prozessor abzurufen, die in dieser Prozessgruppe nicht vorhanden sind.
Nach dem Ziehen dieses Symbols fordert NiFi Sie auf, den Namen des Eingabeports einzugeben, und dieser wird dann der NiFi-Zeichenfläche hinzugefügt.
Ausgangsport
Das folgende Symbol wird auf die Leinwand gezogen, um den Ausgabeport in einen beliebigen Datenfluss einzufügen.
Der Ausgabeport wird verwendet, um Daten an den Prozessor zu übertragen, der in dieser Prozessgruppe nicht vorhanden ist.
Nach dem Ziehen dieses Symbols fordert NiFi Sie auf, den Namen des Ausgabeports einzugeben, und fügt ihn dann der NiFi-Zeichenfläche hinzu.
Prozessgruppe
Ein Benutzer verwendet das folgende Symbol, um der NiFi-Zeichenfläche eine Prozessgruppe hinzuzufügen.
Nach dem Ziehen dieses Symbols fordert NiFi Sie auf, den Namen der Prozessgruppe einzugeben, und fügt ihn dann der NiFi-Zeichenfläche hinzu.
Remote-Prozessgruppe
Dies wird verwendet, um eine Remote-Prozessgruppe in NiFi-Canvas hinzuzufügen.
Trichter
Der Trichter wird verwendet, um die Ausgabe eines Prozessors an mehrere Prozessoren zu übertragen. Der Benutzer kann das folgende Symbol verwenden, um den Trichter in einen NiFi-Datenfluss einzufügen.
Vorlage
Dieses Symbol wird verwendet, um eine Datenflussvorlage zur NiFi-Zeichenfläche hinzuzufügen. Dies hilft, den Datenfluss in derselben oder in verschiedenen NiFi-Instanzen wiederzuverwenden.
Nach dem Ziehen kann ein Benutzer die Vorlagen auswählen, die bereits im NiFi hinzugefügt wurden.
Etikette
Diese werden verwendet, um Text auf NiFi-Leinwand über alle in NiFi vorhandenen Komponenten hinzuzufügen. Es bietet eine Reihe von Farben, die vom Benutzer verwendet werden, um einen ästhetischen Sinn zu verleihen.
Apache NiFi-Prozessoren sind die Grundbausteine für die Erstellung eines Datenflusses. Jeder Prozessor verfügt über unterschiedliche Funktionen, die zur Erstellung einer Ausgabe-Flussdatei beitragen. Der in der folgenden Abbildung gezeigte Datenfluss ruft eine Datei mit dem GetFile-Prozessor aus einem Verzeichnis ab und speichert sie mit dem PutFile-Prozessor in einem anderen Verzeichnis.
Eine Datei bekommen
Der GetFile-Prozess wird verwendet, um Dateien eines bestimmten Formats aus einem bestimmten Verzeichnis abzurufen. Es bietet dem Benutzer auch andere Optionen für mehr Kontrolle beim Abrufen. Wir werden es im Abschnitt Eigenschaften unten diskutieren.
GetFile-Einstellungen
Im Folgenden sind die verschiedenen Einstellungen des GetFile-Prozessors aufgeführt:
Name
In der Einstellung Name kann ein Benutzer einen beliebigen Namen für die Prozessoren entweder nach Projekt oder nach diesem definieren, wodurch der Name aussagekräftiger wird.
Aktivieren
Ein Benutzer kann den Prozessor mit dieser Einstellung aktivieren oder deaktivieren.
Strafdauer
Mit dieser Einstellung kann ein Benutzer die Dauer der Strafzeit für den Fall eines Flowfile-Fehlers hinzufügen.
Ertragsdauer
Diese Einstellung wird verwendet, um die Ertragszeit für den Prozessor anzugeben. In dieser Zeit wird der Vorgang nicht erneut geplant.
Bulletin Level
Diese Einstellung wird verwendet, um die Protokollstufe dieses Prozessors anzugeben.
Beziehungen automatisch beenden
Hier finden Sie eine Liste mit Überprüfungen aller verfügbaren Beziehungen dieses bestimmten Prozesses. Durch Aktivieren der Kontrollkästchen kann ein Benutzer den Prozessor so programmieren, dass die Flussdatei bei diesem Ereignis beendet und nicht weiter im Fluss gesendet wird.
GetFile-Planung
Dies sind die folgenden Planungsoptionen, die vom GetFile-Prozessor angeboten werden:
Strategie planen
Sie können den Prozess entweder zeitlich planen, indem Sie zeitgesteuert auswählen, oder eine angegebene CRON-Zeichenfolge, indem Sie eine CRON-Treiberoption auswählen.
Gleichzeitige Aufgaben
Diese Option wird verwendet, um den Zeitplan für gleichzeitige Aufgaben für diesen Prozessor zu definieren.
Ausführung
Mit dieser Option kann ein Benutzer festlegen, ob der Prozessor auf allen Knoten oder nur auf dem Primärknoten ausgeführt werden soll.
Zeitplan ausführen
Es wird verwendet, um die Zeit für eine zeitgesteuerte Strategie oder den CRON-Ausdruck für eine CRON-gesteuerte Strategie zu definieren.
GetFile-Eigenschaften
GetFile bietet mehrere Eigenschaften, wie in der Abbildung unten gezeigt, und obligatorische Eigenschaften wie Eingabeverzeichnis und Dateifilter sowie optionale Eigenschaften wie Pfadfilter und Maximale Dateigröße. Ein Benutzer kann den Prozess des Abrufs von Dateien mithilfe dieser Eigenschaften verwalten.
GetFile-Kommentare
In diesem Abschnitt werden Informationen zum Prozessor angegeben.
PutFile
Der PutFile-Prozessor wird verwendet, um die Datei aus dem Datenfluss an einem bestimmten Speicherort zu speichern.
PutFile-Einstellungen
Der PutFile-Prozessor hat die folgenden Einstellungen:
Name
In der Einstellung Name kann ein Benutzer einen beliebigen Namen für die Prozessoren definieren, entweder je nach Projekt oder nach dem Namen, der den Namen aussagekräftiger macht.
Aktivieren
Ein Benutzer kann den Prozessor mit dieser Einstellung aktivieren oder deaktivieren.
Strafdauer
Mit dieser Einstellung kann ein Benutzer die Dauer der Strafzeit für den Fall eines Flowfile-Fehlers hinzufügen.
Ertragsdauer
Diese Einstellung wird verwendet, um die Ertragszeit für den Prozessor anzugeben. In dieser Zeit wird der Prozess nicht erneut geplant.
Bulletin Level
Diese Einstellung wird verwendet, um die Protokollstufe dieses Prozessors anzugeben.
Beziehungen automatisch beenden
Diese Einstellungen enthalten eine Liste der Überprüfungen aller verfügbaren Beziehungen dieses bestimmten Prozesses. Durch Aktivieren der Kontrollkästchen kann der Benutzer den Prozessor so programmieren, dass die Flussdatei bei diesem Ereignis beendet und nicht weiter im Fluss gesendet wird.
PutFile-Planung
Dies sind die folgenden Planungsoptionen, die vom PutFile-Prozessor angeboten werden:
Strategie planen
Sie können den Prozess auf Zeitbasis planen, indem Sie entweder einen zeitgesteuerten oder einen angegebenen CRON-String auswählen, indem Sie die Option CRON-Treiber auswählen. Es gibt auch eine ereignisgesteuerte experimentelle Strategie, die den Prozessor bei einem bestimmten Ereignis auslöst.
Gleichzeitige Aufgaben
Diese Option wird verwendet, um den Zeitplan für gleichzeitige Aufgaben für diesen Prozessor zu definieren.
Ausführung
Mit dieser Option kann ein Benutzer festlegen, ob der Prozessor auf allen Knoten oder nur auf dem Primärknoten ausgeführt werden soll.
Zeitplan ausführen
Es wird verwendet, um die Zeit für eine zeitgesteuerte Strategie oder den CRON-Ausdruck für eine CRON-gesteuerte Strategie zu definieren.
PutFile-Eigenschaften
Der PutFile-Prozessor bietet Eigenschaften wie "Verzeichnis", um das Ausgabeverzeichnis für die Dateiübertragung anzugeben, und andere, um die Übertragung zu verwalten, wie in der folgenden Abbildung dargestellt.
PutFile-Kommentare
In diesem Abschnitt werden Informationen zum Prozessor angegeben.
In diesem Kapitel werden wir die Prozesskategorisierung in Apache NiFi diskutieren.
Datenaufnahmeprozessoren
Die Prozessoren unter der Kategorie Datenaufnahme werden verwendet, um Daten in den NiFi-Datenfluss aufzunehmen. Dies ist hauptsächlich der Ausgangspunkt für jeden Datenfluss in Apache NiFi. Einige der Prozessoren, die zu diesen Kategorien gehören, sind GetFile, GetHTTP, GetFTP, GetKAFKA usw.
Routing- und Mediationsprozessoren
Routing- und Mediationsprozessoren werden verwendet, um die Flussdateien gemäß den Informationen in Attributen oder Inhalten dieser Flussdateien an verschiedene Prozessoren oder Datenflüsse weiterzuleiten. Diese Prozessoren sind auch für die Steuerung des NiFi-Datenflusses verantwortlich. Einige der Prozessoren, die zu dieser Kategorie gehören, sind RouteOnAttribute, RouteOnContent, ControlRate, RouteText usw.
Datenbankzugriffsprozessoren
Die Prozessoren dieser Datenbankzugriffskategorie können Daten auswählen oder einfügen oder andere SQL-Anweisungen aus der Datenbank ausführen und vorbereiten. Diese Prozessoren verwenden hauptsächlich die Datenverbindungspool-Controller-Einstellung von Apache NiFi. Einige der Prozessoren, die zu dieser Kategorie gehören, sind ExecuteSQL, PutSQL, PutDatabaseRecord, ListDatabaseTables usw.
Attributextraktionsprozessoren
Attributextraktionsprozessoren sind dafür verantwortlich, die Verarbeitung von Flowfile-Attributen im NiFi-Datenfluss zu extrahieren, zu analysieren und zu ändern. Einige der Prozessoren, die zu dieser Kategorie gehören, sind UpdateAttribute, EvaluateJSONPath, ExtractText, AttributesToJSON usw.
Systeminteraktionsprozessoren
Systeminteraktionsprozessoren werden verwendet, um Prozesse oder Befehle in einem beliebigen Betriebssystem auszuführen. Diese Prozessoren führen auch Skripte in vielen Sprachen aus, um mit einer Vielzahl von Systemen zu interagieren. Einige der Prozessoren, die zu dieser Kategorie gehören, sind ExecuteScript, ExecuteProcess, ExecuteGroovyScript, ExecuteStreamCommand usw.
Datenumwandlungsprozessoren
Prozessoren, die zur Datentransformation gehören, können den Inhalt der Flussdateien ändern. Diese können verwendet werden, um die Daten einer Flussdatei vollständig zu ersetzen, die normalerweise verwendet wird, wenn ein Benutzer eine Flussdatei als HTTP-Body an den aufgerufenen HTTP-Prozessor senden muss. Einige der Prozessoren, die zu dieser Kategorie gehören, sind ReplaceText, JoltTransformJSON usw.
Senden von Datenprozessoren
Sendende Datenprozessoren sind im Allgemeinen die Endprozessoren in einem Datenfluss. Diese Prozessoren sind dafür verantwortlich, Daten zu speichern oder an den Zielserver zu senden. Nach erfolgreichem Speichern oder Senden der Daten lassen diese Prozessoren die Flussdatei mit Erfolgsbeziehung fallen. Einige der Prozessoren, die zu dieser Kategorie gehören, sind PutEmail, PutKafka, PutSFTP, PutFile, PutFTP usw.
Aufteilungs- und Aggregationsprozessoren
Diese Prozessoren werden verwendet, um den in einer Flussdatei vorhandenen Inhalt aufzuteilen und zusammenzuführen. Einige der Prozessoren, die zu dieser Kategorie gehören, sind SplitText, SplitJson, SplitXml, MergeContent, SplitContent usw.
HTTP-Prozessoren
Diese Prozessoren verarbeiten die HTTP- und HTTPS-Aufrufe. Einige der Prozessoren, die zu dieser Kategorie gehören, sind InvokeHTTP, PostHTTP, ListenHTTP usw.
AWS-Prozessoren
AWS-Prozessoren sind für die Interaktion mit dem Amazon Web Services-System verantwortlich. Einige der Prozessoren, die zu dieser Kategorie gehören, sind GetSQS, PutSNS, PutS3Object, FetchS3Object usw.
In einem Apache NiFi-Datenfluss werden Flussdateien über eine Verbindung, die anhand einer Beziehung zwischen Prozessoren validiert wird, von einem Prozessor zu einem anderen Prozessor verschoben. Immer wenn eine Verbindung hergestellt wird, wählt ein Entwickler eine oder mehrere Beziehungen zwischen diesen Prozessoren aus.
Wie Sie im obigen Bild sehen können, sind die Kontrollkästchen im schwarzen Rechteck Beziehungen. Wenn ein Entwickler diese Kontrollkästchen aktiviert, wird die Flussdatei in diesem bestimmten Prozessor beendet, wenn die Beziehung erfolgreich ist oder fehlschlägt oder beides.
Erfolg
Wenn ein Prozessor eine Flussdatei wie das Speichern oder Abrufen von Daten aus einer Datenquelle erfolgreich verarbeitet, ohne eine Verbindung, Authentifizierung oder einen anderen Fehler zu erhalten, wechselt die Flussdatei zur Erfolgsbeziehung.
Fehler
Wenn ein Prozessor eine Flussdatei nicht ohne Fehler wie Authentifizierungsfehler oder Verbindungsprobleme usw. verarbeiten kann, geht die Flussdatei in eine Fehlerbeziehung über.
Ein Entwickler kann die Flussdateien auch über Verbindungen auf andere Prozessoren übertragen. Der Entwickler kann es auswählen und auch ausgleichen. Der Lastausgleich wird jedoch erst in Version 1.8 veröffentlicht, die in diesem Lernprogramm nicht behandelt wird.
Wie Sie im obigen Bild sehen können, weist die rot markierte Verbindung eine Fehlerbeziehung auf. Dies bedeutet, dass alle fehlerhaften Flussdateien links an den Prozessor gesendet werden und alle fehlerfreien Flussdateien an die grün markierte Verbindung übertragen werden.
Fahren wir nun mit den anderen Beziehungen fort.
comms.failure
Diese Beziehung ist erfüllt, wenn eine Flow-Datei aufgrund eines Kommunikationsfehlers nicht vom Remote-Server abgerufen werden konnte.
nicht gefunden
Alle Flowfiles, für die wir vom Remote-Server die Nachricht "Nicht gefunden" erhalten, werden nach verschoben not.found Beziehung.
Erlaubnis verweigert
Wenn NiFi aufgrund unzureichender Berechtigungen keine Flussdatei vom Remoteserver abrufen kann, wird diese Beziehung durchlaufen.
Eine Flussdatei ist eine grundlegende Verarbeitungseinheit in Apache NiFi. Es enthält Dateninhalte und Attribute, die von NiFi-Prozessoren zur Datenverarbeitung verwendet werden. Der Dateiinhalt enthält normalerweise die Daten, die von Quellsystemen abgerufen werden. Die häufigsten Attribute einer Apache NiFi FlowFile sind -
UUID
Dies steht für Universally Unique Identifier, eine eindeutige Identität einer von NiFi generierten Flussdatei.
Dateiname
Dieses Attribut enthält den Dateinamen dieser Flussdatei und sollte keine Verzeichnisstruktur enthalten.
Dateigröße
Es enthält die Größe einer Apache NiFi FlowFile.
Mime Typ
Es gibt den MIME-Typ dieser FlowFile an.
Pfad
Dieses Attribut enthält den relativen Pfad einer Datei, zu der eine Flussdatei gehört, und nicht den Dateinamen.
Die Apache NiFi-Datenflussverbindung verfügt über ein Warteschlangensystem, um den großen Datenfluss zu bewältigen. Diese Warteschlangen können sehr viele FlowFiles verarbeiten, damit der Prozessor sie seriell verarbeiten kann.
In der Warteschlange im obigen Bild wird 1 Flussdatei durch eine Erfolgsbeziehung übertragen. Ein Benutzer kann die Flussdatei überprüfen, indem er die Option auswähltList queueOption in der Dropdown-Liste. Im Falle einer Überlastung oder eines Fehlers kann ein Benutzer die Warteschlange auch durch Auswahl von löschenempty queue Option und dann kann der Benutzer den Fluss neu starten, um diese Dateien wieder in den Datenfluss zu bekommen.
Die Liste der Flussdateien in einer Warteschlange besteht aus Position, UUID, Dateiname, Dateigröße, Warteschlangendauer und Abstammungsdauer. Ein Benutzer kann alle Attribute und Inhalte einer Flussdatei anzeigen, indem er auf das Infosymbol in der ersten Spalte der Flussdateiliste klickt.
In Apache NiFi kann ein Benutzer unterschiedliche Datenflüsse in unterschiedlichen Prozessgruppen verwalten. Diese Gruppen können auf verschiedenen Projekten oder Organisationen basieren, die von der Apache NiFi-Instanz unterstützt werden.
Das vierte Symbol im Menü oben auf der NiFi-Benutzeroberfläche (siehe Abbildung oben) wird verwendet, um eine Prozessgruppe in der NiFi-Zeichenfläche hinzuzufügen. Die Prozessgruppe mit dem Namen "Tutorialspoint.com_ProcessGroup" enthält einen Datenfluss mit vier Prozessoren, die sich derzeit in der Stoppphase befinden, wie Sie im obigen Bild sehen können. Prozessgruppen können hierarchisch erstellt werden, um die Datenflüsse in einer besseren Struktur zu verwalten, die leicht zu verstehen ist.
In der Fußzeile der NiFi-Benutzeroberfläche können Sie die Prozessgruppen anzeigen und zum Anfang der Prozessgruppe zurückkehren, in der sich ein Benutzer gerade befindet.
Um die vollständige Liste der in NiFi vorhandenen Prozessgruppen anzuzeigen, kann ein Benutzer über das Menü oben links auf der NiFi-Benutzeroberfläche zur Zusammenfassung wechseln. Zusammenfassend gibt es eine Registerkarte Prozessgruppen, auf der alle Prozessgruppen mit Parametern wie Versionsstatus, Übertragen / Größe, In / Größe, Lesen / Schreiben, Aus / Größe usw. aufgelistet sind (siehe Abbildung unten).
Apache NiFi bietet Beschriftungen, mit denen Entwickler Informationen zu den auf der NiFI-Zeichenfläche vorhandenen Komponenten schreiben können. Das Symbol ganz links im oberen Menü der NiFi-Benutzeroberfläche wird verwendet, um die Beschriftung in der NiFi-Zeichenfläche hinzuzufügen.
Ein Entwickler kann die Farbe des Etiketts und die Größe des Textes mit einem Rechtsklick auf das Etikett ändern und die entsprechende Option aus dem Menü auswählen.
Apache NiFi ist eine hoch konfigurierbare Plattform. Die Datei nifi.properties im Verzeichnis conf
enthält den größten Teil der Konfiguration.
Die häufig verwendeten Eigenschaften von Apache NiFi sind wie folgt:
Kerneigenschaften
Dieser Abschnitt enthält die Eigenschaften, die zum Ausführen einer NiFi-Instanz obligatorisch sind.
S.No. | Name des Anwesens | Standardwert | Beschreibung |
---|---|---|---|
1 | nifi.flow.configuration.file | ./conf/flow.xml.gz | Diese Eigenschaft enthält den Pfad zur Datei flow.xml. Diese Datei enthält alle in NiFi erstellten Datenflüsse. |
2 | nifi.flow.configuration.archive.enabled | wahr | Diese Eigenschaft wird verwendet, um die Archivierung in NiFi zu aktivieren oder zu deaktivieren. |
3 | nifi.flow.configuration.archive.dir | ./conf/archive/ | Diese Eigenschaft wird verwendet, um das Archivverzeichnis anzugeben. |
4 | nifi.flow.configuration.archive.max.time | 30 Tage | Hiermit wird die Aufbewahrungszeit für die Archivierung von Inhalten angegeben. |
5 | nifi.flow.configuration.archive.max.storage | 500 MB | Es enthält die maximale Größe des Archivierungsverzeichnisses, das wachsen kann. |
6 | nifi.authorizer.configuration.file | ./conf/authorizers.xml | Angeben der Autorisierungskonfigurationsdatei, die für die Benutzerautorisierung verwendet wird. |
7 | nifi.login.identity.provider.configuration.file | ./conf/login-identity-providers.xml | Diese Eigenschaft enthält die Konfiguration der Anmeldeidentitätsanbieter. |
8 | nifi.templates.directory | ./conf/templates | Diese Eigenschaft wird verwendet, um das Verzeichnis anzugeben, in dem NiFi-Vorlagen gespeichert werden. |
9 | nifi.nar.library.directory | ./lib | Diese Eigenschaft enthält den Pfad zur Bibliothek, über den NiFi alle Komponenten mithilfe der in diesem lib-Ordner vorhandenen NAR-Dateien lädt. |
10 | nifi.nar.working.directory | ./work/nar/ | In diesem Verzeichnis werden die entpackten nar-Dateien gespeichert, sobald NiFi sie verarbeitet. |
11 | nifi.documentation.working.directory | ./work/docs/components | Dieses Verzeichnis enthält die Dokumentation aller Komponenten. |
Staatsverwaltung
Diese Eigenschaften werden verwendet, um den Status der Komponenten zu speichern, die zum Starten der Verarbeitung hilfreich sind, wobei die Komponenten nach einem Neustart und im nächsten ausgeführten Zeitplan verbleiben.
S.No. | Name des Anwesens | Standardwert | Beschreibung |
---|---|---|---|
1 | nifi.state.management.configuration.file | ./conf/state-management.xml | Diese Eigenschaft enthält den Pfad zur Datei state-management.xml. Diese Datei enthält den gesamten Komponentenstatus, der in den Datenflüssen dieser NiFi-Instanz vorhanden ist. |
2 | nifi.state.management.provider.local | lokaler Anbieter | Es enthält die ID des lokalen staatlichen Anbieters. |
3 | nifi.state.management.provider.cluster | zk-anbieter | Diese Eigenschaft enthält die ID des clusterweiten Statusanbieters. Dies wird ignoriert, wenn NiFi nicht geclustert ist, sondern ausgefüllt werden muss, wenn es in einem Cluster ausgeführt wird. |
4 | nifi.state.management. eingebettet. Tierpfleger. Start | falsch | Diese Eigenschaft gibt an, ob auf dieser NiFi-Instanz ein eingebetteter ZooKeeper-Server ausgeführt werden soll. |
5 | nifi.state.management. eingebettet. zookeeper.properties | ./conf/zookeeper.properties | Diese Eigenschaft enthält den Pfad der Eigenschaftendatei, die die zu verwendenden ZooKeeper-Eigenschaften enthält, wenn <nifi.state.management. eingebettet. Tierpfleger. start> wird auf true gesetzt. |
FlowFile-Repository
Lassen Sie uns nun die wichtigen Details des FlowFile-Repositorys untersuchen -
S.No. | Name des Anwesens | Standardwert | Beschreibung |
---|---|---|---|
1 | nifi.flowfile.repository. Implementierung | org.apache.nifi. Regler. Repository. WriteAhead FlowFileRepository | Diese Eigenschaft wird verwendet, um anzugeben, ob die Flussdateien im Speicher oder auf der Festplatte gespeichert werden sollen. Wenn ein Benutzer die Flussdateien im Speicher speichern möchte, wechseln Sie zu "org.apache.nifi.controller. Repository.VolatileFlowFileRepository". |
2 | nifi.flowfile.repository.directory | ./flowfile_repository | So geben Sie das Verzeichnis für das Flowfile-Repository an |
Apache NiFi bietet Unterstützung für verschiedene Tools wie Ambari, Zookeeper für Verwaltungszwecke. NiFi bietet auch eine Konfiguration in der Datei nifi.properties, um HTTPS und andere Dinge für Administratoren einzurichten.
Tierpfleger
NiFi selbst übernimmt den Abstimmungsprozess im Cluster nicht. Dies bedeutet, dass beim Erstellen eines Clusters alle Knoten primär und koordinatorisch sind. Daher ist zookeeper so konfiguriert, dass die Abstimmung von Primärknoten und Koordinator verwaltet wird. Die Datei nifi.properties enthält einige Eigenschaften zum Einrichten von zookeeper.
S.No. | Name des Anwesens | Standardwert | Beschreibung |
---|---|---|---|
1 | nifi.state.management.embedded.zookeeper. Eigenschaften | ./conf/zookeeper.properties | So geben Sie den Pfad und den Namen der Zookeeper-Eigenschaftendatei an |
2 | nifi.zookeeper.connect.string | leer | So geben Sie die Verbindungszeichenfolge von zookeeper an |
3 | nifi.zookeeper.connect.timeout | 3 Sek | Festlegen des Verbindungszeitlimits von zookeeper mit NiFi. |
4 | nifi.zookeeper.session.timeout | 3 Sek | Festlegen des Sitzungszeitlimits von zookeeper mit NiFi. |
5 | nifi.zookeeper.root.node | / nifi | Angeben des Stammknotens für zookeeper. |
6 | nifi.zookeeper.auth.type | leer | Angeben des Authentifizierungstyps für zookeeper. |
Aktivieren Sie HTTPS
Um NiFi über HTTPS verwenden zu können, müssen Administratoren einen Keystore und einen Truststore generieren und einige Eigenschaften in der Datei nifi.properties festlegen. Mit dem TLS-Toolkit können alle erforderlichen Schlüssel generiert werden, um HTTPS in Apache NiFi zu aktivieren.
S.No. | Name des Anwesens | Standardwert | Beschreibung |
---|---|---|---|
1 | nifi.web.https.port | leer | Angabe der https-Portnummer. |
2 | nifi.web.https.network.interface.default | leer | Standardschnittstelle für https in NiFi. |
3 | nifi.security.keystore | leer | Angabe des Pfads und des Dateinamens des Schlüsselspeichers. |
4 | nifi.security.keystoreType | leer | Geben Sie den Typ des Keystore-Typs wie JKS an. |
5 | nifi.security.keystorePasswd | leer | So geben Sie das Keystore-Passwort an |
6 | nifi.security.truststore | leer | So geben Sie den Pfad und den Dateinamen des Truststores an |
7 | nifi.security.truststoreType | leer | Geben Sie den Typ des Truststore-Typs wie JKS an. |
8 | nifi.security.truststorePasswd | leer | So geben Sie das Truststore-Kennwort an |
Andere Eigenschaften für die Verwaltung
Es gibt einige andere Eigenschaften, die von Administratoren zur Verwaltung des NiFi und für dessen Dienstkontinuität verwendet werden.
S.No. | Name des Anwesens | Standardwert | Beschreibung |
---|---|---|---|
1 | nifi.flowcontroller.graceful.shutdown.period | 10 Sek | Festlegen der Zeit zum ordnungsgemäßen Herunterfahren des NiFi-Durchflussreglers. |
2 | nifi.administrative.yield.duration | 30 Sekunden | Angabe der administrativen Ertragsdauer für NiFi. |
3 | nifi.authorizer.configuration.file | ./conf/authorizers.xml | So geben Sie den Pfad und den Dateinamen der Autorisierungskonfigurationsdatei an |
4 | nifi.login.identity.provider.configuration.file | ./conf/login-identity-providers.xml | So geben Sie den Pfad und den Dateinamen der Konfigurationsdatei des Anmeldeidentitätsanbieters an |
Apache NiFi bietet eine große Anzahl von Komponenten, mit denen Entwickler Datenflüsse für jede Art von Protokollen oder Datenquellen erstellen können. Um einen Flow zu erstellen, zieht ein Entwickler die Komponenten von der Menüleiste auf die Leinwand und verbindet sie durch Klicken und Ziehen der Maus von einer Komponente zur anderen.
Im Allgemeinen hat ein NiFi zu Beginn des Flusses eine Listener-Komponente wie getfile, die die Daten vom Quellsystem abruft. Am anderen Ende befindet sich eine Senderkomponente wie putfile und dazwischen befinden sich Komponenten, die die Daten verarbeiten.
Erstellen Sie beispielsweise einen Flow, der eine leere Datei aus einem Verzeichnis entnimmt, Text in diese Datei einfügt und in ein anderes Verzeichnis legt.
Ziehen Sie zunächst das Prozessorsymbol auf die NiFi-Zeichenfläche und wählen Sie GetFile-Prozessor aus der Liste aus.
Erstellen Sie ein Eingabeverzeichnis wie c:\inputdir.
Klicken Sie mit der rechten Maustaste auf den Prozessor und wählen Sie Konfigurieren und auf der Registerkarte Eigenschaften hinzufügen Input Directory (c:\inputdir) Klicken Sie auf Übernehmen und kehren Sie zur Leinwand zurück.
Ziehen Sie das Prozessorsymbol auf die Leinwand und wählen Sie den ReplaceText-Prozessor aus der Liste aus.
Klicken Sie mit der rechten Maustaste auf den Prozessor und wählen Sie Konfigurieren. In demproperties Registerkarte, fügen Sie etwas Text wie hinzu “Hello tutorialspoint.com” Klicken Sie im Textfeld Ersatzwert auf Übernehmen.
Gehen Sie zur Registerkarte "Einstellungen", aktivieren Sie das Kontrollkästchen "Fehler" auf der rechten Seite und kehren Sie dann zur Zeichenfläche zurück.
Verbinden Sie den GetFIle-Prozessor bei erfolgreicher Beziehung mit ReplaceText.
Ziehen Sie das Prozessorsymbol auf die Leinwand und wählen Sie den PutFile-Prozessor aus der Liste aus.
Erstellen Sie ein Ausgabeverzeichnis wie c:\outputdir.
Klicken Sie mit der rechten Maustaste auf den Prozessor und wählen Sie Konfigurieren. Fügen Sie auf der Registerkarte Eigenschaften hinzuDirectory (c:\outputdir) Klicken Sie auf Übernehmen und kehren Sie zur Leinwand zurück.
Gehen Sie zur Registerkarte "Einstellungen" und aktivieren Sie das Kontrollkästchen "Fehler und Erfolg" auf der rechten Seite. Kehren Sie dann zur Zeichenfläche zurück.
Verbinden Sie den ReplaceText-Prozessor mit PutFile bei erfolgreicher Beziehung.
Starten Sie nun den Flow und fügen Sie eine leere Datei in das Eingabeverzeichnis ein. Sie werden sehen, dass diese in das Ausgabeverzeichnis verschoben wird und der Text zur Datei hinzugefügt wird.
Durch Befolgen der obigen Schritte können Entwickler einen beliebigen Prozessor und eine andere NiFi-Komponente auswählen, um einen geeigneten Ablauf für ihre Organisation oder ihren Kunden zu erstellen.
Apache NiFi bietet das Konzept von Vorlagen, das die Wiederverwendung und Verteilung der NiFi-Flüsse erleichtert. Die Flows können von anderen Entwicklern oder in anderen NiFi-Clustern verwendet werden. Es hilft auch NiFi-Entwicklern, ihre Arbeit in Repositories wie GitHub zu teilen.
Vorlage erstellen
Erstellen wir eine Vorlage für den Flow, die wir in Kapitel 15 „Apache NiFi - Erstellen von Flows“ erstellt haben.
Wählen Sie alle Komponenten des Flusses mit der Umschalttaste aus und klicken Sie dann auf das Symbol zum Erstellen einer Vorlage auf der linken Seite der NiFi-Zeichenfläche. Sie können auch eine Toolbox sehen, wie im obigen Bild gezeigt. Klicken Sie auf das Symbolcreate templateblau markiert wie im obigen Bild. Geben Sie den Namen für die Vorlage ein. Ein Entwickler kann auch eine Beschreibung hinzufügen, die optional ist.
Vorlage herunterladen
Gehen Sie dann zur Option NiFi-Vorlagen im Menü in der oberen rechten Ecke der NiFi-Benutzeroberfläche (siehe Abbildung unten).
Klicken Sie nun auf das Download-Symbol (rechts in der Liste) der Vorlage, die Sie herunterladen möchten. Eine XML-Datei mit dem Vorlagennamen wird heruntergeladen.
Vorlage hochladen
Um eine Vorlage in NiFi zu verwenden, muss ein Entwickler seine XML-Datei über die Benutzeroberfläche auf NiFi hochladen. Neben dem Symbol "Vorlage erstellen" befindet sich ein Symbol zum Hochladen von Vorlagen (im Bild unten blau markiert). Klicken Sie darauf und durchsuchen Sie die XML-Datei.
Vorlage hinzufügen
In der oberen Symbolleiste der NiFi-Benutzeroberfläche befindet sich das Vorlagensymbol vor dem Beschriftungssymbol. Das Symbol ist blau markiert (siehe Abbildung unten).
Ziehen Sie das Vorlagensymbol, wählen Sie die Vorlage aus der Dropdown-Liste aus und klicken Sie auf Hinzufügen. Die Vorlage wird der NiFi-Leinwand hinzugefügt.
NiFi bietet eine große Anzahl von APIs, mit denen Entwickler Änderungen vornehmen und Informationen über NiFi von jedem anderen Tool oder von benutzerdefinierten Anwendungen abrufen können. In diesem Tutorial verwenden wir die Postman-App in Google Chrome, um einige Beispiele zu erläutern.
Um postmantoyour Google Chrome hinzuzufügen, rufen Sie die unten angegebene URL auf und klicken Sie auf die Schaltfläche Zum Chrome hinzufügen. Sie sehen nun eine neue App für Google Chrome.
Chrome-Webstore
Die aktuelle Version der NiFi Rest API ist 1.8.0 und die Dokumentation finden Sie unter der unten angegebenen URL.
https://nifi.apache.org/docs/nifi-docs/rest-api/index.html
Im Folgenden sind die am häufigsten verwendeten NiFi-Rest-API-Module aufgeführt:
http: // <nifi url>: <nifi port> / nifi-api / <api-path>
Falls HTTPS aktiviert ist https: // <nifi url>: <nifi port> / nifi-api / <api-path>
S.No. | Name des API-Moduls | API-Pfad | Beschreibung |
---|---|---|---|
1 | Zugriff | /Zugriff | Um den Benutzer zu authentifizieren und Zugriffstoken von NiFi zu erhalten. |
2 | Regler | /Regler | So verwalten Sie den Cluster und erstellen eine Berichtsaufgabe |
3 | Controller-Dienste | / Controller-Dienste | Es wird zum Verwalten von Controller-Diensten und zum Aktualisieren von Controller-Service-Referenzen verwendet. |
4 | Berichtsaufgaben | / Berichtsaufgaben | So verwalten Sie Berichtsaufgaben. |
5 | Fließen | /fließen | Abrufen der Datenflussmetadaten und des Komponentenstatus sowie des Abfrageverlaufs |
6 | Prozessgruppen | / Prozessgruppen | Hochladen und Instanziieren einer Vorlage und Erstellen von Komponenten. |
7 | Prozessoren | / Prozessoren | So erstellen und planen Sie einen Prozessor und legen dessen Eigenschaften fest. |
8 | Verbindungen | / Verbindungen | Um eine Verbindung herzustellen, legen Sie die Warteschlangenpriorität fest und aktualisieren Sie das Verbindungsziel |
9 | FlowFile-Warteschlangen | / flowfile-queues | Laden Sie zum Anzeigen des Inhalts der Warteschlange den Inhalt der Flussdatei und die leere Warteschlange herunter. |
10 | Remote-Prozessgruppen | / Remote-Prozessgruppen | So erstellen Sie eine Remote-Gruppe und aktivieren die Übertragung. |
11 | Herkunft | /Herkunft | Zum Abfragen der Herkunft und zum Suchen der Ereignislinie. |
Betrachten wir nun ein Beispiel und führen Sie einen Postboten aus, um die Details zur laufenden NiFi-Instanz abzurufen.
Anfrage
GET http://localhost:8080/nifi-api/flow/about
Antwort
{
"about": {
"title": "NiFi",
"version": "1.7.1",
"uri": "http://localhost:8080/nifi-api/",
"contentViewerUrl": "../nifi-content-viewer/",
"timezone": "SGT",
"buildTag": "nifi-1.7.1-RC1",
"buildTimestamp": "07/12/2018 12:54:43 SGT"
}
}
Apache NiFi protokolliert und speichert alle Informationen zu den Ereignissen, die in den aufgenommenen Daten im Datenfluss auftreten. Das Datenherkunfts-Repository speichert diese Informationen und bietet eine Benutzeroberfläche zum Durchsuchen dieser Ereignisinformationen. Auf die Datenherkunft kann auch für die volle NiFi- und Prozessorebene zugegriffen werden.
In der folgenden Tabelle sind die verschiedenen Felder in der NiFi Data Provenance-Ereignisliste mit den folgenden Feldern aufgeführt:
S.No. | Feldname | Beschreibung |
---|---|---|
1 | Terminzeit | Datum und Uhrzeit der Veranstaltung. |
2 | Art | Art des Ereignisses wie 'CREATE'. |
3 | FlowFileUuid | UUID der Flussdatei, für die das Ereignis ausgeführt wird. |
4 | Größe | Größe der Flussdatei. |
5 | Komponentenname | Name der Komponente, die das Ereignis ausgeführt hat. |
6 | Komponententyp | Typ der Komponente. |
7 | Abstammung anzeigen | In der letzten Spalte befindet sich das Symbol "Abstammungslinie anzeigen", mit dem die Herkunft der Flussdatei angezeigt wird (siehe Abbildung unten). |
Um weitere Informationen zum Ereignis zu erhalten, kann ein Benutzer auf das Informationssymbol in der ersten Spalte der NiFi Data Provenance-Benutzeroberfläche klicken.
Die Datei nifi.properties enthält einige Eigenschaften, mit denen das NiFi Data Provenance-Repository verwaltet wird.
S.No. | Name des Anwesens | Standardwert | Beschreibung |
---|---|---|---|
1 | nifi.provenance.repository.directory.default | ./provenance_repository | Festlegen des Standardpfads für die Herkunft der NiFi-Daten. |
2 | nifi.provenance.repository.max.storage.time | 24 Stunden | Angabe der maximalen Aufbewahrungszeit der NiFi-Datenherkunft. |
3 | nifi.provenance.repository.max.storage.size | 1 GB | Angabe der maximalen Speicherung der Herkunft von NiFi-Daten. |
4 | nifi.provenance.repository.rollover.time | 30 Sek | Angabe der Rollover-Zeit für die Herkunft der NiFi-Daten. |
5 | nifi.provenance.repository.rollover.size | 100 MB | Angabe der Rollover-Größe der Herkunft der NiFi-Daten. |
6 | nifi.provenance.repository.indexed.fields | EventType, FlowFileUUID, Dateiname, Prozessor-ID, Beziehung | Angabe der Felder, die zum Suchen und Indizieren der Herkunft von NiFi-Daten verwendet werden. |
In Apache NiFi gibt es mehrere Möglichkeiten, die verschiedenen Statistiken des Systems zu überwachen, z. B. Fehler, Speichernutzung, CPU-Auslastung, Datenflussstatistik usw. In diesem Lernprogramm werden die beliebtesten erläutert.
Eingebaute Überwachung
In diesem Abschnitt erfahren Sie mehr über die integrierte Überwachung in Apache NiFi.
Schwarzes Brett
Das Bulletin Board zeigt die neuesten FEHLER und WARNUNGEN, die von NiFi-Prozessoren in Echtzeit generiert werden. Um auf das Bulletin Board zuzugreifen, muss ein Benutzer das rechte Dropdown-Menü aufrufen und die Option Bulletin Board auswählen. Es wird automatisch aktualisiert und ein Benutzer kann es auch deaktivieren. Ein Benutzer kann auch zum eigentlichen Prozessor navigieren, indem er auf den Fehler doppelklickt. Ein Benutzer kann die Bulletins auch filtern, indem er Folgendes ausführt:
- per Nachricht
- namentlich
- von id
- nach Gruppen-ID
Benutzeroberfläche für Datenherkunft
Um die Ereignisse zu überwachen, die auf einem bestimmten Prozessor oder in NiFi auftreten, kann ein Benutzer über dasselbe Menü wie das Bulletin Board auf die Datenherkunft zugreifen. Ein Benutzer kann die Ereignisse im Datenherkunfts-Repository auch filtern, indem er mit den folgenden Feldern arbeitet:
- nach Komponentennamen
- nach Komponententyp
- nach Typ
NiFi Zusammenfassung UI
Auf die Apache NiFi-Zusammenfassung kann auch über dasselbe Menü wie das Bulletin Board zugegriffen werden. Diese Benutzeroberfläche enthält Informationen zu allen Komponenten dieser bestimmten NiFi-Instanz oder dieses Clusters. Sie können nach Name, Typ oder URI gefiltert werden. Es gibt verschiedene Registerkarten für verschiedene Komponententypen. Im Folgenden sind die Komponenten aufgeführt, die in der NiFi-Zusammenfassung der Benutzeroberfläche überwacht werden können:
- Processors
- Eingangsanschlüsse
- Ausgangsports
- Remote-Prozessgruppen
- Connections
- Prozessgruppen
In dieser Benutzeroberfläche befindet sich unten rechts ein Link mit dem Namen Systemdiagnose, mit dem Sie die JVM-Statistiken überprüfen können.
Berichtsaufgaben
Apache NiFi bietet mehrere Berichtsaufgaben zur Unterstützung externer Überwachungssysteme wie Ambari, Grafana usw. Ein Entwickler kann eine benutzerdefinierte Berichtsaufgabe erstellen oder die integrierten konfigurieren, um die NiFi-Metriken an die externen Überwachungssysteme zu senden. In der folgenden Tabelle sind die von NiFi 1.7.1 angebotenen Berichtsaufgaben aufgeführt.
S.No. | Name der Berichtsaufgabe | Beschreibung |
---|---|---|
1 | AmbariReportingTask | So richten Sie den Ambari Metrics Service für NiFi ein |
2 | ControllerStatusReportingTask | Um die Informationen von der NiFi-Benutzeroberfläche für die letzten 5 Minuten zu melden. |
3 | MonitorDiskUsage | Melden und Warnen über die Festplattennutzung eines bestimmten Verzeichnisses. |
4 | MonitorMemory | Überwachen der Menge an Java-Heap, die in einem Java-Speicherpool von JVM verwendet wird. |
5 | SiteToSiteBulletinReportingTask | So melden Sie Fehler und Warnungen in Bulletins mithilfe des Site-to-Site-Protokolls. |
6 | SiteToSiteProvenanceReportingTask | So melden Sie die NiFi Data Provenance-Ereignisse mithilfe des Site-to-Site-Protokolls. |
NiFi API
Es gibt eine API namens Systemdiagnose, mit der die NiFI-Statistiken in jeder benutzerdefinierten Anwendung überwacht werden können. Lassen Sie uns die API in Postman überprüfen.
Anfrage
http://localhost:8080/nifi-api/system-diagnostics
Antwort
{
"systemDiagnostics": {
"aggregateSnapshot": {
"totalNonHeap": "183.89 MB",
"totalNonHeapBytes": 192819200,
"usedNonHeap": "173.47 MB",
"usedNonHeapBytes": 181894560,
"freeNonHeap": "10.42 MB",
"freeNonHeapBytes": 10924640,
"maxNonHeap": "-1 bytes",
"maxNonHeapBytes": -1,
"totalHeap": "512 MB",
"totalHeapBytes": 536870912,
"usedHeap": "273.37 MB",
"usedHeapBytes": 286652264,
"freeHeap": "238.63 MB",
"freeHeapBytes": 250218648,
"maxHeap": "512 MB",
"maxHeapBytes": 536870912,
"heapUtilization": "53.0%",
"availableProcessors": 4,
"processorLoadAverage": -1,
"totalThreads": 71,
"daemonThreads": 31,
"uptime": "17:30:35.277",
"flowFileRepositoryStorageUsage": {
"freeSpace": "286.93 GB",
"totalSpace": "464.78 GB",
"usedSpace": "177.85 GB",
"freeSpaceBytes": 308090789888,
"totalSpaceBytes": 499057160192,
"usedSpaceBytes": 190966370304,
"utilization": "38.0%"
},
"contentRepositoryStorageUsage": [
{
"identifier": "default",
"freeSpace": "286.93 GB",
"totalSpace": "464.78 GB",
"usedSpace": "177.85 GB",
"freeSpaceBytes": 308090789888,
"totalSpaceBytes": 499057160192,
"usedSpaceBytes": 190966370304,
"utilization": "38.0%"
}
],
"provenanceRepositoryStorageUsage": [
{
"identifier": "default",
"freeSpace": "286.93 GB",
"totalSpace": "464.78 GB",
"usedSpace": "177.85 GB",
"freeSpaceBytes": 308090789888,
"totalSpaceBytes": 499057160192,
"usedSpaceBytes": 190966370304,
"utilization": "38.0%"
}
],
"garbageCollection": [
{
"name": "G1 Young Generation",
"collectionCount": 344,
"collectionTime": "00:00:06.239",
"collectionMillis": 6239
},
{
"name": "G1 Old Generation",
"collectionCount": 0,
"collectionTime": "00:00:00.000",
"collectionMillis": 0
}
],
"statsLastRefreshed": "09:30:20 SGT",
"versionInfo": {
"niFiVersion": "1.7.1",
"javaVendor": "Oracle Corporation",
"javaVersion": "1.8.0_151",
"osName": "Windows 7",
"osVersion": "6.1",
"osArchitecture": "amd64",
"buildTag": "nifi-1.7.1-RC1",
"buildTimestamp": "07/12/2018 12:54:43 SGT"
}
}
}
}
Lesen Sie die Versionshinweise, bevor Sie mit dem Upgrade von Apache NiFi beginnen, um Informationen zu den Änderungen und Ergänzungen zu erhalten. Ein Benutzer muss die Auswirkungen dieser Ergänzungen und Änderungen in seiner aktuellen NiFi-Installation bewerten. Unten finden Sie den Link, um die Versionshinweise für die neuen Versionen von Apache NiFi zu erhalten.
https://cwiki.apache.org/confluence/display/NIFI/Release+Notes
In einem Cluster-Setup muss ein Benutzer die NiFi-Installation jedes Knotens in einem Cluster aktualisieren. Führen Sie die folgenden Schritte aus, um das Apache NiFi zu aktualisieren.
Sichern Sie alle benutzerdefinierten NARs, die in Ihrem aktuellen NiFi oder lib oder einem anderen Ordner vorhanden sind.
Laden Sie die neue Version von Apache NiFi herunter. Unten finden Sie den Link zum Herunterladen der Quelle und der Binärdateien der neuesten NiFi-Version.
https://nifi.apache.org/download.html
Erstellen Sie ein neues Verzeichnis im selben Installationsverzeichnis des aktuellen NiFi und extrahieren Sie die neue Version von Apache NiFi.
Stoppen Sie das NiFi anmutig. Stoppen Sie zuerst alle Prozessoren und lassen Sie alle im Flow vorhandenen Flowfiles verarbeiten. Sobald keine Flussdatei mehr vorhanden ist, stoppen Sie das NiFi.
Kopieren Sie die Konfiguration von authorizers.xml aus der aktuellen NiFi-Installation in die neue Version.
Aktualisieren Sie die Werte in bootstrap-notification-services.xml und bootstrap.conf der neuen NiFi-Version von der aktuellen.
Fügen Sie der neuen NiFi-Installation die benutzerdefinierte Protokollierung aus logback.xml hinzu.
Konfigurieren Sie den Anmeldeidentitätsanbieter in login-identity-providers.xml ab der aktuellen Version.
Aktualisieren Sie alle Eigenschaften in nifi.properties der neuen NiFi-Installation von der aktuellen Version.
Stellen Sie sicher, dass die Gruppe und der Benutzer der neuen Version mit der aktuellen Version übereinstimmen, um Fehler zu vermeiden, denen die Berechtigung verweigert wurde.
Kopieren Sie die Konfiguration aus der Datei state-management.xml der aktuellen Version in die neue Version.
Kopieren Sie den Inhalt der folgenden Verzeichnisse aus der aktuellen Version der NiFi-Installation in dieselben Verzeichnisse in der neuen Version.
./conf/flow.xml.gz
Auch flow.xml.gz aus dem Archivverzeichnis.
Für Herkunfts- und Inhaltsrepositorys ändern Sie die Werte in nifi. Eigenschaftendatei zu den aktuellen Repositorys.
Kopieren Sie den Status von ./state/local oder ändern Sie die nifi.properties, wenn ein anderes externes Verzeichnis angegeben ist.
Überprüfen Sie alle vorgenommenen Änderungen erneut und prüfen Sie, ob sie sich auf neue Änderungen auswirken, die in der neuen NiFi-Version hinzugefügt wurden. Wenn es Auswirkungen gibt, suchen Sie nach Lösungen.
Starten Sie alle NiFi-Knoten und überprüfen Sie, ob alle Flows ordnungsgemäß funktionieren und Repositorys Daten speichern und Ui sie mit Fehlern abruft.
Überwachen Sie die Bulletins einige Zeit, um nach neuen Fehlern zu suchen.
Wenn die neue Version ordnungsgemäß funktioniert, kann die aktuelle Version archiviert und aus den Verzeichnissen gelöscht werden.
Mit Apache NiFi Remote Process Group oder RPG kann Flow die FlowFiles in einem Flow mithilfe des Site-to-Site-Protokolls an verschiedene NiFi-Instanzen weiterleiten. Ab Version 1.7.1 bietet NiFi keine ausgeglichenen Beziehungen, daher wird RPG für den Lastausgleich in einem NiFi-Datenfluss verwendet.
Ein Entwickler kann das Rollenspiel über die obere Symbolleiste der NiFi-Benutzeroberfläche hinzufügen, indem er das im obigen Bild gezeigte Symbol auf die Leinwand zieht. Um ein Rollenspiel zu konfigurieren, muss ein Entwickler die folgenden Felder hinzufügen:
S.No. | Feldname | Beschreibung |
---|---|---|
1 | URLs | Festlegen von durch Kommas getrennten Remote-Ziel-NiFi-URLs. |
2 | Transportprotokoll | Festlegen des Transportprotokolls für entfernte NiFi-Instanzen. Es ist entweder RAW oder HTTP. |
3 | Lokale Netzwerkschnittstelle | Festlegen der lokalen Netzwerkschnittstelle zum Senden / Empfangen von Daten. |
4 | Hostname des HTTP-Proxyservers | Angeben des Hostnamens des Proxyservers zum Zweck des Transports in RPG. |
5 | HTTP-Proxyserver-Port | Angeben des Ports des Proxyservers für den Transport in RPG. |
6 | HTTP-Proxy-Benutzer | Es ist ein optionales Feld, um den Benutzernamen für den HTTP-Proxy anzugeben. |
7 | HTTP-Proxy-Passwort | Es ist ein optionales Feld, um das Kennwort für den obigen Benutzernamen anzugeben. |
Ein Entwickler muss es aktivieren, bevor er es verwendet, wie wir Prozessoren starten, bevor wir sie verwenden.
Apache NiFi bietet gemeinsam genutzte Dienste an, die von Prozessoren gemeinsam genutzt werden können. Die Berichtsaufgabe wird als Controller-Einstellungen bezeichnet. Diese ähneln dem Datenbankverbindungspool, der von Prozessoren verwendet werden kann, die auf dieselbe Datenbank zugreifen.
Verwenden Sie das Dropdown-Menü in der rechten oberen Ecke der NiFi-Benutzeroberfläche, um auf die Controller-Einstellungen zuzugreifen (siehe Abbildung unten).
Es gibt viele Controller-Einstellungen, die von Apache NiFi angeboten werden. Wir werden eine häufig verwendete diskutieren und wie wir sie in NiFi einrichten.
DBCPConnectionPool
Fügen Sie das Pluszeichen auf der Seite Nifi-Einstellungen hinzu, nachdem Sie auf die Option Controller-Einstellungen geklickt haben. Wählen Sie dann den DBCPConnectionPool aus der Liste der Controller-Einstellungen. DBCPConnectionPool wird auf der Hauptseite für NiFi-Einstellungen hinzugefügt (siehe Abbildung unten).
Es enthält die folgenden Informationen zur Steuerung setting:Name
- Type
- Bundle
- State
- Scope
- Symbol konfigurieren und löschen
Klicken Sie auf das Konfigurationssymbol und füllen Sie die erforderlichen Felder aus. Die Felder sind in der folgenden Tabelle aufgeführt -
S.No. | Feldname | Standardwert | Beschreibung |
---|---|---|---|
1 | URL der Datenbankverbindung | leer | So geben Sie die Verbindungs-URL zur Datenbank an |
2 | Name der Datenbanktreiberklasse | leer | So geben Sie den Namen der Treiberklasse für eine Datenbank wie com.mysql.jdbc.Driver für mysql an |
3 | Maximale Wartezeit | 500 Millis | Festlegen der Wartezeit für die Daten von einer Verbindung zur Datenbank. |
4 | Max. Gesamtzahl der Verbindungen | 8 | So geben Sie die maximale Anzahl der zugewiesenen Verbindungen im Datenbankverbindungspool an |
Um eine Controller-Einstellung zu stoppen oder zu konfigurieren, sollten zuerst alle angeschlossenen NiFi-Komponenten gestoppt werden. NiFi erweitert die Controller-Einstellungen um die Verwaltung der Konfiguration. Daher sind nur diejenigen betroffen, die dieselben Einstellungen verwendet haben, und verwenden dieselben Controller-Einstellungen.
Apache NiFi-Berichtsaufgaben ähneln den Controller-Diensten, die im Hintergrund ausgeführt werden und die Statistiken der NiFi-Instanz senden oder protokollieren. Auf die NiFi-Berichtsaufgabe kann auch über dieselbe Seite wie die Controller-Einstellungen zugegriffen werden, jedoch auf einer anderen Registerkarte.
Um eine Berichtsaufgabe hinzuzufügen, muss ein Entwickler auf die Plus-Schaltfläche oben rechts auf der Seite mit den Berichtsaufgaben klicken. Diese Berichtsaufgaben werden hauptsächlich zur Überwachung der Aktivitäten einer NiFi-Instanz verwendet, entweder in den Bulletins oder in der Herkunft. Diese Berichtsaufgaben verwenden hauptsächlich Site-to-Site, um die NiFi-Statistikdaten zu einem anderen Knoten oder externen System zu transportieren.
Fügen wir nun zum besseren Verständnis eine konfigurierte Berichtsaufgabe hinzu.
MonitorMemory
Diese Berichtsaufgabe wird zum Generieren von Bulletins verwendet, wenn ein Speicherpool den angegebenen Prozentsatz überschreitet. Führen Sie die folgenden Schritte aus, um die MonitorMemory-Berichtsaufgabe zu konfigurieren.
Fügen Sie das Pluszeichen hinzu und suchen Sie in der Liste nach MonitorMemory.
Wählen Sie MonitorMemory und klicken Sie auf HINZUFÜGEN.
Klicken Sie auf das Konfigurationssymbol, sobald es auf der Hauptseite der Berichtsseite hinzugefügt wurde.
Wählen Sie auf der Registerkarte Eigenschaften den Speicherpool aus, den Sie überwachen möchten.
Wählen Sie den Prozentsatz aus, nach dem Bulletins die Benutzer benachrichtigen sollen.
Starten Sie die Berichtsaufgabe.
Apache NiFi - Benutzerdefinierter Prozessor
Apache NiFi ist eine Open Source-Plattform und bietet Entwicklern die Möglichkeit, ihren benutzerdefinierten Prozessor in die NiFi-Bibliothek aufzunehmen. Befolgen Sie diese Schritte, um einen benutzerdefinierten Prozessor zu erstellen.
Laden Sie die neueste Version von Maven über den unten angegebenen Link herunter.
https://maven.apache.org/download.cgi
Fügen Sie eine Umgebungsvariable mit dem Namen M2_HOME hinzu und legen Sie den Wert als Installationsverzeichnis von maven fest.
Laden Sie die Eclipse-IDE über den folgenden Link herunter.
https://www.eclipse.org/downloads/download.php
Öffnen Sie die Eingabeaufforderung und führen Sie den Befehl Maven Archetype aus.
> mvn archetype:generate
Suchen Sie in den Archetyp-Projekten nach dem NIFI-Typ.
Wählen Sie org.apache.nifi: Projekt nifi-processor-bundle-archetype.
Wählen Sie dann aus der Liste der Versionen die neueste Version aus, z. B. 1.7.1 für dieses Lernprogramm.
Geben Sie die Gruppen-ID, die Artefakt-ID, die Version, das Paket und den Artefakt-Basisnamen usw. ein.
Dann wird ein Maven-Projekt erstellt, das Verzeichnisse enthält.
nifi-<artifactBaseName>-processors
nifi-<artifactBaseName>-nar
Führen Sie den folgenden Befehl im Verzeichnis nifi- <artifactBaseName> -processors aus, um das Projekt zur Eclipse hinzuzufügen.
mvn install eclipse:eclipse
Öffnen Sie Eclipse und wählen Sie Import aus dem Dateimenü.
Wählen Sie dann "Vorhandene Projekte in Arbeitsbereich" und fügen Sie das Projekt aus dem Verzeichnis nifi- <artifactBaseName> -Prozessoren in Eclipse hinzu.
Fügen Sie Ihren Code in der Funktion public void onTrigger (ProcessContext-Kontext, ProcessSession-Sitzung) hinzu, die ausgeführt wird, wenn ein Prozessor ausgeführt werden soll.
Packen Sie dann den Code in eine NAR-Datei, indem Sie den unten genannten Befehl ausführen.
mvn clean install
Eine NAR-Datei wird bei nifi- erstellt
-nar / Zielverzeichnis. Kopieren Sie die NAR-Datei in den lib-Ordner von Apache NiFi und starten Sie das NiFi neu.
Überprüfen Sie nach erfolgreichem Neustart von NiFi die Prozessorliste für den neuen benutzerdefinierten Prozessor.
Überprüfen Sie die Datei ./logs/nifi.log auf Fehler.
Apache NiFi - Benutzerdefinierter Controller-Service
Apache NiFi ist eine Open Source-Plattform und bietet Entwicklern die Möglichkeit, ihren Dienst für benutzerdefinierte Controller in Apache NiFi hinzuzufügen. Die Schritte und Tools entsprechen fast denen zum Erstellen eines benutzerdefinierten Prozessors.
Öffnen Sie die Eingabeaufforderung und führen Sie den Befehl Maven Archetype aus.
> mvn archetype:generate
Suchen Sie in den Archetyp-Projekten nach dem NIFI-Typ.
Wählen org.apache.nifi:nifi-service-bundle-archetype Projekt.
Wählen Sie dann aus der Liste der Versionen die neueste Version aus - 1.7.1 für dieses Tutorial.
Geben Sie die Gruppen-ID, die Artefakt-ID, die Version, das Paket und den Artefakt-Basisnamen usw. ein.
Es wird ein Maven-Projekt mit Verzeichnissen erstellt.
nifi-<artifactBaseName>
nifi-<artifactBaseName>-nar
nifi-<artifactBaseName>-api
nifi-<artifactBaseName>-api-nar
Führen Sie den folgenden Befehl in den Verzeichnissen nifi- <artifactBaseName> und nifi- <artifactBaseName> -api aus, um diese beiden Projekte zur Eclipse hinzuzufügen.
mvn install eclipse: eclipse
Öffnen Sie Eclipse und wählen Sie Import aus dem Dateimenü.
Wählen Sie dann "Vorhandene Projekte in Arbeitsbereich" und fügen Sie das Projekt aus den Verzeichnissen nifi- <artifactBaseName> und nifi- <artifactBaseName> -api in Eclipse hinzu.
Fügen Sie Ihren Code in die Quelldateien ein.
Packen Sie dann den Code in eine NAR-Datei, indem Sie den unten genannten Befehl ausführen.
mvn sauber installieren
In jedem Verzeichnis nifi- <artifactBaseName> / target und nifi- <artifactBaseName> -api / target werden zwei NAR-Dateien erstellt.
Kopieren Sie diese NAR-Dateien in den lib-Ordner von Apache NiFi und starten Sie das NiFi neu.
Überprüfen Sie nach erfolgreichem Neustart von NiFi die Prozessorliste für den neuen benutzerdefinierten Prozessor.
Überprüfen Sie auf Fehler ./logs/nifi.log Datei.
Apache NiFi - Protokollierung
Apache NiFi verwendet die Logback-Bibliothek, um die Protokollierung durchzuführen. Im conf-Verzeichnis von NiFi befindet sich eine Datei logback.xml, mit der die Protokollierung in NiFi konfiguriert wird. Die Protokolle werden im Protokollordner von NiFi generiert und die Protokolldateien sind wie unten beschrieben.
nifi-app.log
Dies ist die Hauptprotokolldatei von nifi, die alle Aktivitäten der Apache NiFi-Anwendung protokolliert, angefangen beim Laden von NAR-Dateien bis hin zu Laufzeitfehlern oder Bulletins, auf die NiFi-Komponenten stoßen. Unten ist der Standard-Appender inlogback.xml Datei für nifi-app.log Datei.
<appender name="APP_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${org.apache.nifi.bootstrap.config.log.dir}/
nifi-app_%d{yyyy-MM-dd_HH}.%i.log
</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<immediateFlush>true</immediateFlush>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
</encoder>
</appender>
Der Appender-Name lautet APP_FILE und die Klasse lautet RollingFileAppender. Dies bedeutet, dass der Logger die Rollback-Richtlinie verwendet. Standardmäßig beträgt die maximale Dateigröße 100 MB und kann auf die erforderliche Größe geändert werden. Die maximale Aufbewahrungsdauer für APP_FILE beträgt 30 Protokolldateien und kann je nach Benutzeranforderung geändert werden.
nifi-user.log
Dieses Protokoll enthält die Benutzerereignisse wie Web-Sicherheit, Web-API-Konfiguration, Benutzerautorisierung usw. Unten finden Sie den Appender für nifi-user.log in der Datei logback.xml.
<appender name="USER_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-user.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>
${org.apache.nifi.bootstrap.config.log.dir}/
nifi-user_%d.log
</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
</encoder>
</appender>
Der Appender-Name lautet USER_FILE. Es folgt der Rollover-Richtlinie. Die maximale Aufbewahrungsdauer für USER_FILE beträgt 30 Protokolldateien. Unten finden Sie die Standardprotokollierer für den USER_FILE-Appender in nifi-user.log.
<logger name="org.apache.nifi.web.security" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.web.api.config" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.authorization" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.cluster.authorization" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.web.filter.RequestLogger" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
nifi-bootstrap.log
Dieses Protokoll enthält die Bootstrap-Protokolle, die Standardausgabe von Apache NiFi (alle system.out im Code hauptsächlich zum Debuggen geschrieben) und den Standardfehler (alle system.err im Code geschrieben). Unten finden Sie den Standard-Appender für die Datei nifi-bootstrap.log in logback.log.
<appender name="BOOTSTRAP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-bootstrap.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>
${org.apache.nifi.bootstrap.config.log.dir}/nifi-bootstrap_%d.log
</fileNamePattern>
<maxHistory>5</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
</encoder>
</appender>
Der Appender-Name der Datei nifi-bootstrap.log lautet BOOTSTRAP_FILE und folgt ebenfalls der Rollback-Richtlinie. Die maximale Aufbewahrungsdauer für den BOOTSTRAP_FILE-Appender beträgt 5 Protokolldateien. Unten finden Sie die Standardprotokollierer für die Datei nifi-bootstrap.log.
<logger name="org.apache.nifi.bootstrap" level="INFO" additivity="false">
<appender-ref ref="BOOTSTRAP_FILE" />
</logger>
<logger name="org.apache.nifi.bootstrap.Command" level="INFO" additivity="false">
<appender-ref ref="CONSOLE" />
<appender-ref ref="BOOTSTRAP_FILE" />
</logger>
<logger name="org.apache.nifi.StdOut" level="INFO" additivity="false">
<appender-ref ref="BOOTSTRAP_FILE" />
</logger>
<logger name="org.apache.nifi.StdErr" level="ERROR" additivity="false">
<appender-ref ref="BOOTSTRAP_FILE" />
</logger>