Zuhause Persönliche Finanzen Komprimieren von Daten in Hadoop - Dummies

Komprimieren von Daten in Hadoop - Dummies

Video: Sqoop Import and Export data from RDMBS and HDFS 2025

Video: Sqoop Import and Export data from RDMBS and HDFS 2025
Anonim

verfügbar sind. Die riesigen Datenmengen, die in einer typischen Hadoop-Implementierung Realität sind, machen die Komprimierung zu einer Notwendigkeit. Die Datenkomprimierung spart auf jeden Fall viel Speicherplatz und beschleunigt die Datenübertragung in Ihrem Cluster. Es überrascht nicht, dass eine Reihe von verfügbaren Komprimierungsschemata, so genannte Codecs, zur Verfügung stehen.

In einer Hadoop-Bereitstellung handelt es sich (potenziell) um eine große Anzahl einzelner Slave-Knoten, von denen jeder eine Reihe großer Festplattenlaufwerke hat. Es ist nicht ungewöhnlich, dass ein einzelner Slave-Knoten mehr als 45 TB freien Speicherplatz für HDFS zur Verfügung hat.

Auch wenn Hadoop-Slave-Knoten kostengünstig sind, sind sie nicht kostenlos, und bei großen Datenmengen, die mit steigender Geschwindigkeit wachsen, ist die Komprimierung ein offensichtliches Werkzeug, um extreme Datenmengen.

Zunächst einige grundlegende Begriffe: Ein Codec, , der eine verkürzte Form von co mpressor / dec ompressor ist, ist Technologie (Software oder Hardware oder beide) zum Komprimieren und Dekomprimieren von Daten; Es ist die Implementierung eines Komprimierungs- / Dekomprimierungsalgorithmus.

Sie müssen wissen, dass einige Codecs eine so genannte splittbare Komprimierung unterstützen und dass Codecs sich sowohl in der Geschwindigkeit unterscheiden, mit der sie Daten komprimieren und dekomprimieren können, als auch in welchem ​​Grad sie komprimiert werden können.

Splittable compression ist ein wichtiges Konzept in einem Hadoop-Kontext. Die Funktionsweise von Hadoop besteht darin, dass Dateien geteilt werden, wenn sie größer als die Blockgröße der Datei sind, und einzelne Dateisplits können von verschiedenen Mapper parallel verarbeitet werden.

Bei den meisten Codecs können Textdateisplits nicht unabhängig von anderen Teilen derselben Datei dekomprimiert werden. Diese Codecs sind also nicht teilbar, daher ist die MapReduce-Verarbeitung auf einen einzelnen Mapper beschränkt.

Da die Datei nur als Ganzes dekomprimiert werden kann und nicht als einzelne Teile, die auf Splits basieren, kann es keine parallele Verarbeitung einer solchen Datei geben, und die Leistung kann einen großen Treffer erzielen, wenn ein Job auf einen einzelnen Mapper wartet. verarbeiten mehrere Datenblöcke, die nicht unabhängig voneinander dekomprimiert werden können.

Die teilbare Komprimierung ist nur ein Faktor für Textdateien. Bei Binärdateien komprimieren Hadoop-Komprimierungscodecs Daten in einem binär codierten Container, abhängig vom Dateityp (z. B. SequenceFile, Avro oder ProtocolBuffer).

Apropos Leistung: Die Komprimierung der Daten, die in Ihren Hadoop-Cluster geschrieben werden, verursacht Kosten (in Bezug auf Verarbeitungsressourcen und Zeit).

Bei Computern ist wie beim Leben nichts frei. Beim Komprimieren von Daten tauschen Sie Verarbeitungszyklen für Speicherplatz aus. Und wenn diese Daten gelesen werden, gibt es auch Kosten für das Dekomprimieren der Daten. Achten Sie darauf, die Vorteile der Speicherersparnis gegen den zusätzlichen Leistungsaufwand abzuwägen.

Wenn die Eingabedatei zu einem MapReduce-Job komprimierte Daten enthält, wird die zum Lesen dieser Daten aus HDFS benötigte Zeit reduziert und die Jobleistung verbessert. Die Eingabedaten werden automatisch entpackt, wenn sie von MapReduce gelesen werden.

Die Eingabe-Dateinamenerweiterung bestimmt, welcher unterstützte Codec verwendet wird, um die Daten automatisch zu dekomprimieren. Beispiel: a. Die Erweiterung gz identifiziert die Datei als gzip-komprimierte Datei.

Es kann auch nützlich sein, die Zwischenausgabe der Map-Phase im MapReduce-Verarbeitungsfluss zu komprimieren. Da die Ausgabe der Kartenfunktion auf die Festplatte geschrieben und über das Netzwerk an die Reduzierungsaufgaben gesendet wird, kann die Komprimierung der Ausgabe zu erheblichen Leistungsverbesserungen führen.

Und wenn Sie die MapReduce-Ausgabe als Verlaufsdateien für zukünftige Verwendung speichern möchten, kann die Komprimierung dieser Daten den Platzbedarf in HDFS erheblich reduzieren.

Es gibt viele verschiedene Kompressionsalgorithmen und -werkzeuge, deren Eigenschaften und Stärken variieren. Der häufigste Kompromiss besteht zwischen Komprimierungsraten (dem Grad, zu dem eine Datei komprimiert wird) und Komprimierungs- / Dekomprimierungsgeschwindigkeiten. Das Hadoop-Framework unterstützt mehrere Codecs. Das Framework komprimiert und dekomprimiert die meisten Eingabe- und Ausgabedateiformate transparent.

Die folgende Liste enthält einige allgemeine Codecs, die vom Hadoop-Framework unterstützt werden. Achten Sie darauf, den Codec auszuwählen, der den Anforderungen Ihres speziellen Anwendungsfalls am ehesten entspricht (zum Beispiel bei Workloads, bei denen die Geschwindigkeit der Verarbeitung wichtig ist, wählen Sie einen Codec mit hohen Dekompressionsgeschwindigkeiten):

  • Gzip: Eine Komprimierung Das vom GNU-Projekt übernommene Dienstprogramm Gzip (kurz für GNU zip) generiert komprimierte Dateien mit einem. gz Erweiterung. Sie können den Befehl gunzip verwenden, um Dateien zu entpacken, die von einer Reihe von Komprimierungsprogrammen, einschließlich Gzip, erstellt wurden.

  • Bzip2: Aus Usability-Sicht sind Bzip2 und Gzip ähnlich. Bzip2 erzeugt ein besseres Komprimierungsverhältnis als Gzip, aber es ist viel langsamer. In der Tat ist Bzip2 von allen verfügbaren Komprimierungscodecs in Hadoop mit Abstand am langsamsten.

    Wenn Sie ein Archiv einrichten, das Sie selten abfragen müssen und das Platzangebot sehr hoch ist, dann wäre Bzip2 vielleicht eine Überlegung wert.

  • Snappy: Der Snappy-Codec von Google bietet bescheidene Kompressionsraten, aber schnelle Komprimierungs- und Dekompressionsgeschwindigkeiten. (In der Tat hat es die schnellsten Dekompressionsgeschwindigkeiten, was es sehr wünschenswert für Datensätze macht, die wahrscheinlich häufig abgefragt werden.)

    Der Snappy-Codec ist in Hadoop Common integriert, einer Reihe von allgemeinen Hilfsprogrammen, die andere Hadoop-Teilprojekte unterstützen… Sie können Snappy als Add-on für neuere Versionen von Hadoop verwenden, die noch keine Snappy-Codec-Unterstützung bieten.

  • LZO: Ähnlich wie Snappy liefert LZO (Abkürzung für Lempel-Ziv-Oberhumer, das Trio von Informatikern, das den Algorithmus entwickelt hat) bescheidene Kompressionsraten, aber schnelle Kompressions- und Dekompressionsgeschwindigkeiten. LZO ist unter der GNU Public License (GPL) lizenziert.

    LZO unterstützt die spaltbare Komprimierung, die die parallele Verarbeitung komprimierter Textdateisplits durch Ihre MapReduce-Jobs ermöglicht. LZO muss beim Komprimieren einer Datei einen Index erstellen, da bei Komprimierungsblöcken mit variabler Länge ein Index erforderlich ist, um dem Mapper mitzuteilen, wo er die komprimierte Datei sicher teilen kann. LZO ist nur dann wirklich wünschenswert, wenn Sie Textdateien komprimieren müssen.

Hadoop-Codecs

Codec Dateierweiterung Teilbar? Komprimierungsgrad Komprimierungsgeschwindigkeit
Gzip . gz Nein Mittel Mittel
Bzip2 . bz2 Ja Hoch Langsam
Bissig . bissig Nein Mittel Schnell
LZO . lzo Nein, sofern nicht indiziert Mittel Schnell

Alle Komprimierungsalgorithmen müssen Kompromisse zwischen dem Grad der Komprimierung und der Geschwindigkeit der Komprimierung eingehen, die sie erreichen können. Die aufgeführten Codecs geben Ihnen eine gewisse Kontrolle darüber, wie das Verhältnis zwischen Komprimierungsrate und Geschwindigkeit bei der Komprimierung sein sollte.

Mit Gzip können Sie beispielsweise die Geschwindigkeit der Komprimierung regulieren, indem Sie eine negative ganze Zahl (oder ein Schlüsselwort) angeben, wobei -1 die schnellste Komprimierungsstufe angibt und -9 die langsamste Komprimierungsstufe angibt. Die Standardkomprimierungsstufe ist -6.

Komprimieren von Daten in Hadoop - Dummies

Die Wahl des Herausgebers

Wie man Dateien in C ++ kopiert - Dummies

Wie man Dateien in C ++ kopiert - Dummies

Ah, eine Datei kopieren - etwas so einfaches, es passiert alles Zeit. Kopiere diese Datei dorthin; Kopieren Sie diese Datei hier. Aber was genau passiert, wenn Sie eine Datei kopieren? Sie erstellen tatsächlich eine neue Datei und füllen diese mit dem gleichen Inhalt wie die Originaldatei. Und wie machst du das? Nun, ...

Anleitung zum Erstellen eines Verzeichnisses in C ++ - Dummies

Anleitung zum Erstellen eines Verzeichnisses in C ++ - Dummies

Wenn Sie ein Verzeichnis erstellen möchten, können Sie das MKdir Funktion. Wenn die Funktion das Verzeichnis für Sie erstellen kann, gibt sie eine 0 zurück. Andernfalls wird ein Wert ungleich Null zurückgegeben. (Wenn Sie es ausführen, erhalten Sie eine -1, aber Ihre beste Wette - immer - ist es, gegen 0 zu testen.) Hier ist einige ...

Wie man eine einfache mathematische Vorlage in C ++ - Dummies

Wie man eine einfache mathematische Vorlage in C ++ - Dummies

Mit einer mathematischen Vorlage erstellt, die man normalerweise benötigt Zugriff auf eine Vielzahl von Berechnungen, aber nur jeweils eine oder zwei dieser Berechnungen. Zum Beispiel, wenn jemand Ihre Hypothek berechnet, muss er die Amortisationsrechnung nicht kennen. Die Person kann jedoch die Amortisationsberechnung benötigen, wenn Sie mit ...

Die Wahl des Herausgebers

ASVAB: Lesen für die Studie - Dummies

ASVAB: Lesen für die Studie - Dummies

Lesen für die Zwecke des Studiums der ASVAB ist eine andere Art des Lesens. Leseverständnis erfordert nur, dass Sie Informationen lange genug im Kurzzeitgedächtnis speichern, um einige Sekunden später eine Frage zu beantworten. Zum Lesen für die Zwecke des Studiums müssen Sie wichtige Informationen in Ihr Langzeitgedächtnis einpflegen - ...

ASVAB Mathematik Wissenspraxis: Ungleichungen - Dummies

ASVAB Mathematik Wissenspraxis: Ungleichungen - Dummies

Als wäre Algebra nicht anspruchsvoll genug, einige Fragen zur Der Subtest Mathematik auf dem ASVAB wird auch eine Ungleichheit einwerfen - nur um sicherzustellen, dass Sie aufmerksam sind. Wie erkennst du eine Ungleichheit? Halten Sie Ausschau nach Fragen mit mehr als oder weniger als Symbolen oder nach Graphen, die eine Zahlenlinie mit einem ...

ASVAB Mathematische Wissenspraxis: Fraktionen - Dummies

ASVAB Mathematische Wissenspraxis: Fraktionen - Dummies

Der Subtest Mathematikwissen auf dem ASVAB wird Fragen beinhalten, die Sie fragen mit Teilen eines Ganzen oder Fraktionen arbeiten. Diese Fragen können das Multiplizieren, Dividieren, Addieren, Subtrahieren und Konvertieren von Brüchen beinhalten, ähnlich den folgenden Übungsfragen. Übungsfragen Welche Fraktionen sind nicht gleichwertig? Gegeben einfach den Ausdruck. Antworten und Erklärungen Das richtige ...

Die Wahl des Herausgebers

Hinzufügen von Flash-Audio- und Videodateien in Dreamweaver - Dummies

Hinzufügen von Flash-Audio- und Videodateien in Dreamweaver - Dummies

Adobe besitzt sowohl Flash als auch Dreamweaver Daher finden Sie großartige Unterstützung für Flash-Dateien in Dreamweaver. Das Dialogfeld "FLV einfügen" erleichtert das Festlegen von Parametern für Flash. Dreamweaver erkennt sogar automatisch die Größe von Flash-Videodateien. Sie können Flash auch zum Erstellen und Einfügen von Audiodateien verwenden, wobei nur der Player angezeigt wird.

Einstellen von Bildhelligkeit und -kontrast in Dreamweaver - Dummies

Einstellen von Bildhelligkeit und -kontrast in Dreamweaver - Dummies

Dreamweaver bietet Werkzeuge zum Erstellen von Bildern Einstellungen, einschließlich der Helligkeit und des Kontrastes. Durch die Anpassung der Bildhelligkeit können Sie die Gesamtlichtmenge in einem Bild ändern. Kontrast steuert den Unterschied zwischen hellen und dunklen Bereichen eines Bildes. Wenn Sie die Dreamweaver-Bearbeitungswerkzeuge verwenden, wird das Bild dauerhaft geändert, wenn die Seite ...

Hinzufügen von Bildern zu Ihrer Website in Dreamweaver - Dummies

Hinzufügen von Bildern zu Ihrer Website in Dreamweaver - Dummies

Wenn Sie Ihrer Website ein Bild hinzufügen, erscheint anfangs fast magisch, weil der Prozess mit Dreamweaver so einfach ist. Die Herausforderung bei Webgrafiken besteht darin, sie nicht zu Ihren Seiten hinzuzufügen, sondern gut aussehende Bilder zu erstellen, die schnell im Browser Ihres Viewers geladen werden. Sie benötigen ein anderes Programm wie Photoshop, Photoshop Elements oder Fireworks, um ...