2017-06-20 2 views
1

Ich bin neu bei Apache NIFI und versuche, einen Flow als POC aufzubauen. Ich brauche deine Anleitung für das Gleiche.Apache Nifi Dekompression

Ich habe eine komprimierte 'gz' Datei sagen 'sample.gz' mit einer Datei sagen 'sample_file'. Ich muss die Datei sample.gz dekomprimieren und 'sample_file' in einem hdfs-Speicherort speichern.

Ich benutze GetFile-Prozessor, um die Datei sample.gz, CompressContent-Prozessor im Dekomprimierungsmodus, um die gleiche Datei und PutDDFS-Prozessor dekomprimieren, um die dekomprimierte Datei in HDFS-Speicherort zu setzen.

Nach dem Ausführen des Flusses kann ich feststellen, dass die ursprüngliche sample.gz-Datei nur in HDFS-Speicherort kopiert wird, während ich die sample_file innerhalb der GZ-Datei kopieren musste. Also hat das Dekomprimieren für mich nicht funktioniert.

Ich hoffe, ich könnte das Problem erklären, dem ich gegenüberstehe. Bitte schlagen Sie vor, wenn ich meinen Ansatz ändern muss.

+0

was ist die Version von nifi zu ändern verwenden Sie? – daggett

Antwort

3

Ich habe die gleiche Sequenz von Prozessoren verwendet, aber geändert PutHDFS zu PutFile.

GetFile --> CompressContent(decompress) --> PutFile 

In nifi v1.3.0 funktioniert es gut.

Die einzige Anmerkung: wenn ich die Parameter Update Filename = false die für CompressContent halten dann das filename Attribut bleibt gleich nach der Dekomprimierung wie zuvor (sample.gz).

Aber der Inhalt ist dekomprimiert.

Also, wenn Sie Ihre Frage über den Dateinamen dann:

  1. Sie, indem der Parameter Update Filename = true in CompressContent Prozessor ändern können. In diesem Fall wird sample.gz während der Dekomprimierung in sample geändert.
  2. verwenden UpdateAttribute Prozessor das filename Attribut
+0

Danke für deinen Kommentar .. es hat funktioniert .. –