Von den folgenden Absätzen von Text-- (http://developer.yahoo.com/hadoop/tutorial/module2.html),Es erwähnt, dass sequentiell lesbare große Dateien nicht für lokale Zwischenspeicherung geeignet sind. aber ich verstehe nicht, was lokal hier bedeutet ...Was bedeutet "lokales Caching von Daten" im Zusammenhang mit diesem Artikel?
Es gibt zwei Annahmen meiner Meinung nach: eine ist Client speichert Daten von HDFS und die andere ist Datanode speichert hdfs Daten in seinem lokalen Dateisystem oder Speicher für Clients zu Zugriff schnell. Gibt es jemanden, der mehr erklären kann? Danke vielmals.
Aber während HDFS sehr skalierbar ist, schränkt seine hohe Performance-Design auch zu einer bestimmte Klasse von Anwendungen; es ist nicht so allgemein wie NFS. Es gibt eine große Anzahl von zusätzlichen Entscheidungen und Kompromisse, die mit HDFS gemacht wurden. Im Einzelnen:
Es wird davon ausgegangen, dass Anwendungen, die HDFS verwenden, lange sequenzielle Streaming-Lesevorgänge aus -Dateien durchführen. HDFS ist optimiert, um Streaming-Leseleistung bereitzustellen; Dies kommt auf Kosten von zufälligen Suchzeiten zu beliebigen Positionen in Dateien.
Daten werden einmal in das HDFS geschrieben und dann mehrmals gelesen; Aktualisierungen an Dateien , nachdem sie bereits geschlossen wurden, werden nicht unterstützt. (Eine Erweiterung auf Hadoop liefert Unterstützung zum Anhang neue Daten zu den Enden von Dateien; es geplant ist, in Hadoop 0.19 enthalten sein soll, aber noch nicht verfügbar.)
Aufgrund der großen Größe von Dateien und die sequenzielle Art der Lesevorgänge, stellt das System keinen Mechanismus für lokale Zwischenspeicherung von Daten. Der Overhead des Caching ist groß genug, , dass Daten einfach erneut aus der HDFS-Quelle gelesen werden sollten.
Es wird angenommen, dass einzelne Maschinen häufig ausfallen, sowohl permanent als auch mit Unterbrechungen. Der Cluster muss in der Lage sein, dem vollständigen Ausfall mehrerer Maschinen zu widerstehen, wobei möglicherweise viele gleichzeitig auftreten (z. B. wenn ein Rack alle zusammen versagt). Während die Leistung proportional zur Anzahl der verlorenen Maschinen abnimmt, sollte das System als nicht zu langsam werden, noch sollten Informationen verloren gehen. Datenreplikation
Strategien bekämpfen dieses Problem.
ein Mapper ist hier der Client zu DataNode, so bedeutet das lokale Caching, dass der Mapper Daten aus Hdfs zwischenspeichert, richtig? –
Egal, ob es die Daten auf der Clientseite oder innerhalb des Datenknotenspeichers zwischenspeichert, wird die wahrscheinlich Trefferrate auf einem Cache-Eintrag selten sein, mit einem sehr kurzen ttl im Cache, bevor ein anderer Block es ausstößt –
I Sehen Sie, der Hauptpunkt hier ist, dass keine Art von Caching funktioniert, danke! –