2017-02-17 3 views
1

HDP-2.5.3.0, NiFi 1.1.1Speichern von Daten erforderlich von einem benutzerdefinierten NiFi-Prozessor

Ich schreibe einen benutzerdefinierten Prozessor in NiFi. Es gibt mehrere String- und Timestamp-Felder, die ich irgendwo speichern muss, damit diese auf allen/beliebigen Knoten verfügbar sind.

Beachten Sie, dass HDFS keine Option ist, da NiFi ohne Hadoop-Installation im Bild ausgeführt werden kann.

Was sind die Optionen, um dies zu tun - ich frage mich, ob Zookeeper verwendet werden kann, um diese Daten zu speichern, da es klein ist und NiFi von ZK unterstützt wird. Ich habe versucht, Wege zu finden, die Zookeeper-API zu verwenden, um diese Felder vergeblich zu erhalten.

Antwort

3

NiFi stellt ein Konzept namens "state manager" für Prozessoren zur Verfügung, um Informationen wie diese zu speichern. Bei der Ausführung von Standalone-NiFi gibt es einen lokalen Statusmanager, und beim Ausführen von Clustern gibt es einen ZooKeeper-Statusmanager.

einen Blick auf die Entwicklerführungs hier Nehmen:

https://nifi.apache.org/docs/nifi-docs/html/developer-guide.html#state_manager

Auch Verwendung dieses viele der Quelle Prozessoren in Nifi machen, so können Sie für Beispiele im Code aussehen:

https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ListHDFS.java#L249

Admin Handbuch für die Konfiguration der staatlichen Anbieter:

https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#state_management

Verwandte Themen