Video: hadoop yarn architecture 2024
Hadoop Distributed File System (HDFS) wurde entwickelt, um Daten auf kostengünstige und unzuverlässige Hardware zu speichern. Preiswert hat einen attraktiven Klang, aber es wirft Bedenken hinsichtlich der Zuverlässigkeit des Systems als Ganzes auf, insbesondere um die Hochverfügbarkeit der Daten sicherzustellen.
Bei der Planung der Katastrophe haben die Gehirne hinter HDFS die Entscheidung getroffen, das System so einzurichten, dass es drei (count 'em - three) Kopien jedes Datenblocks speichert.
Bei HDFS wird davon ausgegangen, dass jedes Laufwerk und jeder Slave-Knoten von Natur aus unzuverlässig ist. Daher muss bei der Auswahl der drei Kopien der Datenblöcke sorgfältig vorgegangen werden.
Die Abbildung zeigt, wie Datenblöcke aus der früheren Datei im gesamten Hadoop-Cluster gestrippt sind - das heißt, sie sind gleichmäßig auf die Slave-Knoten verteilt, sodass eine Kopie des Blocks unabhängig von der Festplatte verfügbar bleibt. Knoten- oder Rack-Fehler.
Die gezeigte Datei enthält fünf Datenblöcke, die mit a, b, c, d und e gekennzeichnet sind. Wenn Sie genauer hinschauen, können Sie sehen, dass dieser spezielle Cluster aus zwei Racks mit jeweils zwei Knoten besteht und dass die drei Kopien jedes Datenblocks auf die verschiedenen Slave-Knoten verteilt wurden.
Jede Komponente im Hadoop-Cluster wird als möglicher Fehlerpunkt angesehen. Wenn also HDFS die Replikate der ursprünglichen Blöcke im Hadoop-Cluster speichert, versucht es sicherzustellen, dass die Blockreplikate in verschiedenen Fehlerpunkten gespeichert werden.
Schauen Sie sich zum Beispiel Block A an. Zu der Zeit, zu der er gespeichert werden musste, wurde Slave Node 3 ausgewählt, und die erste Kopie von Block A wurde dort gespeichert. Für mehrere Rack-Systeme bestimmt HDFS dann, dass die verbleibenden zwei Kopien von Block A in einem anderen Rack gespeichert werden müssen. Die zweite Kopie von Block A wird also auf dem Slave-Knoten 1 gespeichert.
Die endgültige Kopie kann auf demselben Rack wie die zweite Kopie gespeichert werden, jedoch nicht auf demselben Slave-Knoten, sodass sie auf dem Slave-Knoten 2 gespeichert wird.