2017-09-21 4 views
1

Ich konnte keine dokumentierten Einschränkungen finden von https://cwiki.apache.org/confluence/display/Hive/HomeGibt es eine theoretische und praktische Hive-Beschränkung hinsichtlich Anzahl der Zeilen, Anzahl der Spalten, Dateigröße?

Meine Vermutung ist, gibt es keine Begrenzung für die Anzahl der Zeilen oder Spalten. Die Dateigröße ist durch das Dateisystem begrenzt. Durch die Partitionierung der Daten können wir auch die Dateigrößen und die Anzahl der Dateien verwalten.

Vielen Dank.

Antwort

1

Anzahl der Spalten:

In diesem jira sie mit 15K Spalten erfolgreich getestet und 20K Spalten verursacht OOM für ORC-Dateien (mit Standard 1 GB Heap). Textdateien können wahrscheinlich noch mehr Spalten speichern: https://issues.apache.org/jira/browse/HIVE-7250

Maximale Dateigröße.

Dateien werden in Blöcken aufgeteilt gespeichert und Block-ID ist lang, was maximal 2^63 ist. Wenn Ihre Blockgröße 64 MB beträgt, beträgt die maximale Größe 512 Yottabyte. Es gibt also praktisch keine Grenze, aber es gibt andere Hadoop-Grenzen.

Die Frage ist zu breit für die vollständige Antwort, aber es gibt einige wichtige Schlussfolgerungen über Hadoop Skalierbarkeit in dieser Arbeit: http://c59951.r51.cf2.rackcdn.com/5424-1908-shvachko.pdf

Namespace Einschränkung.

Der Namespace besteht aus Dateien und Verzeichnissen. Verzeichnisse definieren die hierarchische Struktur des Namensraums. Dateien - die Datencontainer - sind in große (jeweils 128 MB) Blöcke unterteilt.

Die Metadaten des Namensknotens bestehen aus dem hierarchischen Namespace und einem Block für die Datenknotenzuordnung, der die physischen Blockpositionen bestimmt. Um die Rate der Metadatenoperationen hoch zu halten, behält HDFS den gesamten Namespace im RAM. Der Name-Node speichert den Namespace Image und sein Änderungsprotokoll dauerhaft im externen Speicher, z. B. einer lokalen oder einer Remote-Festplatte. Das Namespacebild und das Journal enthalten die HDFS-Datei und das Verzeichnis Namen und ihre Attribute (Änderungs- und Zugriffszeiten, Berechtigungen, Kontingente), einschließlich Block-IDs für Dateien. um 100 Millionen Dateien zu speichern (Referenzierung 200 Millionen Blöcke) sollte ein Name-Knoten mindestens 60 GB RAM haben.

Speicherplatz.

Mit 100 Millionen Dateien mit jeweils durchschnittlich 1,5 Blöcken haben wir 200 Millionen Blöcke im Dateisystem. Wenn die maximale Blockgröße 128 MB ist und jeder Block dreimal repliziert wird, dann ist der gesamte erforderliche Speicherplatz zum Speichern dieser Blöcke in der Nähe von 60PB.

Clustergröße.

Um Daten durch eine 100 Millionen-Datei Namespace, ein Cluster HDFS verwiesen aufnehmen muss 10.000 Knoten mit acht 1TB Festplatten ausgestattet.Die Gesamtspeicherkapazität eines solchen Clusters beträgt 60PB

Interne Last.

Die interne Last für den Block Berichte und Herzschlag-Verarbeitung auf einen 10.000-Knoten HDFS Cluster mit einer Gesamtspeicherkapazität von 60 PB wird verbrauchen 30% der gesamten Namens-node Verarbeitungskapazität.

+0

Vielen Dank für Ihre Einsichten und Ihr Fachwissen. –

Verwandte Themen