Frage

Ich verwende derzeit Hadoop Mapreduce-Jobs mit SequenceFiles von beschreibbaren Dateien.Derselbe beschreibbare Typ wird für die Serialisierung auch in den nicht Hadoop-bezogenen Teilen des Systems verwendet.

Diese Methode ist schwer zu warten – vor allem wegen des fehlenden Schemas und der Notwendigkeit einer manuellen Handhabung von Versionsänderungen.

Es scheint, dass Apache Avro diese Probleme behandelt.

Das Problem ist, dass ich während der Migration Daten in beiden Formaten haben werde.Gibt es eine einfache Möglichkeit, die Migration abzuwickeln?

War es hilfreich?

Lösung

Im Allgemeinen gibt es nichts daran, Avro-Daten- und Sequenzfiles austauschbar zu verwenden. Verwenden Sie, was für die Art der benötigten Daten, die Sie benötigen, benötigt, und für die Ausgabe ist natürlich sinnvoll, Avro-Formate bei der Praxis zu verwenden. Wenn Ihre Eingabe in verschiedenen Formaten kommt, werfen Sie einen Blick auf MultipleInputs . Im Wesentlichen müssen Sie immer noch separate Mapper umsetzen, aber das ist, wenn der Karteneingabetaste / -wert unterschiedlich ist.

Umzug nach Avro ist ein weiser Schritt. Wenn Sie die Kapazität in Zeit und Hardware haben, lohnt es sich möglicherweise sogar, Ihre Daten ausdrücklich von SequenceFile nach Avro zu konvertieren. Sie können jede von Avro unterstützte Sprache verwenden, die auch mit der Unterstützung von Sequenzdateien unterstützt. Java tut es sicherlich (klar), aber das Schwein ist auch ziemlich praktisch, um dies zu tun.

Das vom Benutzer beigetragene Piggybank-Projekt hat Funktionalität zum Lesen eines Sequenzdateis, und dann ist es einfach nur eine Frage der Verwendung von Avrostorage aus demselben Piggybank-Projekt mit dem entsprechenden AVRO-Schema, um Ihre Avro-Datei zu erhalten.

Wenn nur das Schwein geladen wird Avro-Schemas aus Datei ..! Wenn Sie ein Schwein verwenden, müssen Sie leider Skripts bilden, die ausdrücklich das AVRO-Schema enthalten, das etwas nervig sein kann.

Andere Tipps

Ich habe es selbst nicht ausprobiert, aber vielleicht mit AvroSequenceFile Format würde helfen.Es ist nur eine Hülle SequenceFile Theoretisch sollten Sie also in der Lage sein, Daten in beide alten zu schreiben SequenceFile Format sowie Ihr neues Avro Format, das die Migration erleichtern soll.

Hier ist Mehr Informationen über dieses Format.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top