Wie wählt hdfs einen zu speichernden Datenknoten aus?

8

Wie zeigt der Titel an, wenn ein Client anfordert, eine Datei in die hdfs zu schreiben, wie wählt der HDFS- oder Name-Knoten aus, welcher Datenknoten die Datei speichert?  Versuchen die hdfs, alle Blöcke dieser Datei im selben Knoten oder einem Knoten im selben Rack zu speichern, wenn es zu groß ist?  Verfügen die hdfs über APIs für Anwendungen zum Speichern der Datei in einem bestimmten Datenknoten?

    
user1687035 29.10.2012, 20:59
quelle

5 Antworten

8

Der Code für die Auswahl des Datenknotens ist in der Funktion ReplicationTargetChooser.chooseTarget() .

Der Kommentar sagt Folgendes:

  

Die Replica-Platzierungsstrategie lautet, dass der Writer sich auf a befindet   Datanode, das 1. Replikat wird sonst auf dem lokalen Rechner abgelegt   ein zufälliger Datenknoten. Das zweite Replikat wird auf einem Datanode platziert, der aktiviert ist   ein anderes Rack. Das 3. Replikat wird auf einen Datanode platziert, der aktiviert ist   das gleiche Rack wie das erste Replikat.

Es bietet keine API für Anwendungen zum Speichern der Datei in dem gewünschten Datanode.

    
gaoxinbo 30.10.2012, 04:43
quelle
10
  

Wie wählt der HDFS- oder Name-Knoten aus, welcher Datenknoten die Datei speichert?

HDFS verfügt über einen BlockPlacementPolicyDefault , überprüfen Sie die API-Dokumentation für weitere Details. Es sollte möglich sein, BlockPlacementPolicy für ein benutzerdefiniertes Verhalten.

  

Bietet die hdfs APIs für Anwendungen, um die Datei in einem bestimmten Datenknoten zu speichern, wie er will?

Das Platzierungsverhalten sollte nicht für einen bestimmten Datenknoten spezifisch sein. Das macht HDFS resistent gegen Ausfälle und skalierbar.

    
Praveen Sripati 30.10.2012 01:02
quelle
5

Wenn jemand Diagramme vorzieht, ist hier ein Bild ( Quelle ): < br>

    
www 01.03.2013 23:35
quelle
2

Mit Hadoop-385 Patch können wir jetzt die Block-Placement-Richtlinie auswählen, um sie zu platzieren alle Blöcke einer Datei im selben Knoten (und ähnlich für replizierte Knoten). Lesen Sie diesen Blog zu diesem Thema - lesen Sie den Kommentarbereich .

    
Mohamed 01.03.2013 21:24
quelle
-1

Sie können dies sehen, wenn namenode den Datenknoten anweist, Daten zu speichern. Das erste Replikat wird auf dem lokalen Computer gespeichert und die anderen beiden Replikate werden auf einem anderen Rack usw. erstellt.

Wenn ein Replikat fehlschlägt, werden Daten von einem anderen Replikat gespeichert. Die Wahrscheinlichkeit, dass du jede Replik versagst, ist genauso wie das Fallen eines Fächers auf deinen Kopf während du schläfst: p. D. H., Es gibt sehr viel weniger Chancen dafür.

    
Mayur Sonawala 10.03.2017 19:44
quelle

Tags und Links