Was ist mit „Streaming-Datenzugriff“ in HDFS gemeint?

Was ist mit „Streaming-Datenzugriff“ in HDFS gemeint?

Laut der HDFS-Architekturseite wurde HDFS für „Streaming-Datenzugriff“ entwickelt. Ich bin mir nicht sicher, was das genau bedeutet, würde aber vermuten, dass es bedeutet, dass ein Vorgang wie „Seek“ entweder deaktiviert ist oder eine nicht optimale Leistung aufweist. Wäre das richtig?

Ich möchte HDFS zum Speichern von Audio-/Videodateien verwenden, die an Browser-Clients gestreamt werden müssen. Die meisten Streams werden von Anfang bis Ende übertragen, aber einige können eine hohe Anzahl von Suchvorgängen aufweisen.

Vielleicht gibt es ein anderes Dateisystem, das dies besser kann?

Antwort1

Streaming bedeutet lediglich, dass Ihnen beim Übertragen der Daten eine konstante Bitrate über einem bestimmten Schwellenwert angeboten werden kann, anstatt dass die Daten in Schüben oder Wellen eingehen.

Wenn HDFS für Streaming ausgelegt ist, wird es wahrscheinlich trotzdem Seek unterstützen, allerdings mit etwas Mehraufwand, der zum Zwischenspeichern der Daten für einen konstanten Stream erforderlich ist.

Natürlich können Ihre Suchvorgänge je nach System- und Netzwerkauslastung etwas länger dauern.

Antwort2

HDFS speichert Daten in großen Blöcken – beispielsweise 64 MB. Die Idee dahinter ist, dass Sie Ihre Daten sequenziell auf Ihrer Festplatte anordnen möchten, wodurch die Anzahl der Suchvorgänge, die Ihre Festplatte zum Lesen von Daten durchführen muss, reduziert wird.

Darüber hinaus ist HDFS ein User-Space-Dateisystem, sodass es einen einzigen zentralen Namensknoten gibt, der ein Verzeichnis im Arbeitsspeicher enthält, in dem alle Blöcke (und ihre Replikate) im gesamten Cluster gespeichert sind. Die Dateien sind voraussichtlich groß (etwa 1 GB oder mehr) und werden in mehrere Blöcke aufgeteilt. Um eine Datei zu lesen, fragt der Code den Namensknoten nach einer Liste von Blöcken ab und liest die Blöcke dann nacheinander.

Die Daten werden von der Festplatte „gestreamt“, indem die maximale E/A-Rate beibehalten wird, die die Festplatte für diese großen Datenblöcke aufrechterhalten kann.

Antwort3

Für Streamingdaten vomHadoop: Der ultimative Leitfaden, 3. Ausgabe:

HDFS basiert auf der Idee, dass das effizienteste Datenverarbeitungsmuster ein Muster ist, bei dem einmal geschrieben und mehrmals gelesen wird. Ein Datensatz wird normalerweise generiert oder aus der Quelle kopiert, und dann werden im Laufe der Zeit verschiedene Analysen an diesem Datensatz durchgeführt. Jede Analyse umfasst einen großen Teil, wenn nicht sogar den gesamten Datensatz. Daher ist die Zeit zum Lesen des gesamten Datensatzes wichtiger als die Latenz beim Lesen des ersten Datensatzes.

verwandte Informationen