2017-03-29 2 views
0

Könnte jemand etwas Licht darauf werfen, was passiert, wenn der Flume-Agent in der Mitte der HDFS-Datei getötet wird (etwa im Avro-Format)? Wird die Datei beschädigt und alle Ereignisse verloren?Was sind die Garantien für Apache Flume HDFS Senken Dateischreibvorgänge?

Ich verstehe, dass es Transaktionen zwischen verschiedenen Elementen der Flume-Datenkette gibt (source-> channel-> sink). Aber ich glaube, dass die HDFS-Dateien zwischen aufeinanderfolgenden Kanal-> Senken-Transaktionen (als .tmp) offen bleiben können. Wenn also eine Transaktion von beispielsweise 100 Ereignissen erfolgreich ist (und die Ereignisse in einer Datei gespeichert sind, Transaktion festgeschrieben) und die nächste in der Mitte des HDFS-Schreibvorgangs fehlschlägt, könnte es sein, dass die ursprünglichen 100 Ereignisse aus der ersten Transaktion nicht lesbar sind (weil die Datei Korruption zum Beispiel?). Wie kann Flume sicherstellen, dass die ursprünglichen 100 Ereignisse aus der ersten Transaktion nicht von dieser Art von Fehlern betroffen sind? Oder gibt es dort vielleicht keine Garantie?

Antwort

0

Wenn der Fluge-Agent während des HDFS-Datei-Schreibvorgangs beendet wird, wird die Datei nicht beschädigt und es kommt zu keinem Datenverlust.

Wenn der Gerinne in eine Datei schreibt, sage "FlumeData123456789.tmp", wenn der Geruchsagent beendet wird, dann bleiben alle bis dahin in diese Datei geschriebenen Datensätze intakt und die Datei wird als FlumeData123456789 gespeichert.

+0

Danke für Ihre Antwort! Aber wie kommt es, dass die Datei umbenannt wird (ich verstehe, dass das der Fall ist)? In aufeinanderfolgenden Läufen weiß es möglicherweise nicht einmal, dass es diese Datei mit .tmp in einem Verzeichnis erstellt hat, zu dem es möglicherweise nie zurückkehren wird (d. H. Aufgrund einer Änderung der Daten). Ich habe das getestet und der Kanal hat diese * .tmp-Datei immer verlassen und eine neue gestartet. Was die Korruption angeht, bin ich neugierig, woher die Garantie kommt? Handelt es sich um den spezifischen Typ von Writer oder nur allgemein um das hdfs-Protokoll? –

Verwandte Themen