Hadoop Record I/O enthält Klassendateien und Interpreter für die Datensatzbeschreibungssprache, um die Serialisierung und Deserialisierung von Datensätzen zu vereinfachen.
Einführung
Jedes Softwaresystem mit erheblicher Komplexität erfordert einen Mechanismus zum Datenaustausch mit der Außenwelt. Bei der Dateninteraktion handelt es sich in der Regel um die Paketierung und das Entpacken logischer Eingabe- und Ausgabedateneinheiten (z. B. Dateien, Netzwerkverbindungen, Speicherpuffer usw.). Anwendungen verfügen häufig über verschachtelte Opcodes zum Serialisieren und Deserialisieren von Datentypen. Die Serialisierung verfügt über mehrere Funktionen, die eine automatisierte Codegenerierung ermöglichen. Wenn Sie ein bestimmtes Ausgabekodierungsformat (z. B. Binär, XML usw.) haben, ist die Serialisierung grundlegender Datentypen und Kombinationen grundlegender Datentypen eine mechanische Aufgabe. Das manuelle Schreiben von Serialisierungscode ist fehleranfällig, insbesondere wenn Datensätze viele Felder enthalten oder ein Datensatz in verschiedenen Versionen unterschiedlich definiert ist. Schließlich ist es nützlich für den Datenaustausch zwischen Anwendungen, die in verschiedenen Programmiersprachen geschrieben sind. Einfacher wird es, wenn man die von der Anwendung manipulierten Datensätze sprachunabhängig beschreibt und aus der Beschreibung Implementierungen in verschiedenen Zielsprachen ableitet. Dieses Dokument beschreibt Hadoop Record I/O, einen Mechanismus, dessen Zweck darin besteht:
1) eine einfache Spezifikation serialisierter Datentypen bereitzustellen
2) verschiedene Ziele für die Kapselung und das Entpacken der oben genannten bereitzustellen Typen Codegenerierung für die Sprache
3) Bietet zielspezifische Unterstützung, um Anwendungsprogrammierern die Integration generierten Codes in Anwendungen zu ermöglichen.
Hadoop Record I/O zielt auf Mechanismen wie XDR, ASN.1, PADS und ICE ab. Obwohl diese Systeme für die meisten Datensatztypen eine kanonische DDL-Datei enthalten, unterscheiden sie sich in vielen anderen Punkten. Hadoop Record I/O konzentriert sich auf Datenserialisierung und mehrsprachige Unterstützung. Wir können eine Serialisierung basierend auf dem Übersetzer durchführen. Hadoop-Benutzer müssen eine einfache Datenbeschreibungssprache verwenden, um ihre Daten zu beschreiben. Der Hadoop DDL-Übersetzer rcc generiert Code, und Benutzer können Daten lesen und schreiben, indem sie eine einfache Lese- und Schreibdatenflussabstraktion aufrufen. Als nächstes werden wir einige Ziele und Nichtziele von Hadoop Record I/O auflisten.
Ziele:
1) Unterstützung häufig verwendeter Grundtypen. Hadoop sollte gängige integrierte Typen enthalten, die wir unterstützen möchten.
2) Unterstützt zusammengesetzte Typen (einschließlich rekursiver Komposition). Hadoop sollte zusammengesetzte Typen wie Strukturen oder Vektoren unterstützen.
3) Codegenerierung in verschiedenen Zielsprachen. Hadoop sollte in der Lage sein, die Generierung von Serialisierungscode in verschiedenen Zielsprachen zu unterstützen und gut zu skalieren. Die ersten Ziele sind C++ und JAVA.
4) Unterstützung der Zielsprache. Hadoop sollte über integrierte Header-Dateien, Bibliotheken oder Pakete verfügen, die das Ziel unterstützen, damit es gut in die Anwendung integriert werden kann.
5) Unterstützt eine Vielzahl unterschiedlicher Ausgabekodierungsformate. Es kann sich um gekapselte Binärdatei, durch Kommas getrennten Text, XML usw. handeln.
6) Unterstützt abwärts- oder vorwärtskompatible Datensatztypen.
Nicht Ziel:
1) Serialisieren Sie beliebige C++-Dateien.
2) Serialisieren Sie komplexe Datenstrukturen wie Bäume, verknüpfte Listen usw.
3) Integrierte Indizierung, Komprimierung oder Prüfsumme.
4) Dynamisch konstruierte Entitäten, die aus XML generiert werden.
Die folgenden Dokumente beschreiben hauptsächlich die Merkmale der Hadoop-Datensatz-E/A im Detail. Teil 2 beschreibt die vom System unterstützten Datentypen, Teil 3 beschreibt die DDL-Syntax für einfache Aufnahmebeispiele, Teil 4 beschreibt den Prozess der Codegenerierung mit rcc und Teil 5 beschreibt die Zielsprachenzuordnung und Unterstützung für Hadoop-Typen, die wir bereits kennen haben Eine relativ vollständige Beschreibung der C++-Zuordnung, die Java und andere Sprachen in kommende Dokumentationsaktualisierungen einbeziehen wird. Im letzten Abschnitt wird die Unterstützung der Ausgabekodierung beschrieben.
Das obige ist der detaillierte Inhalt vonFunktionen von Hadoop Record I. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!