2016-12-16 8 views
1

Angenommen: Ich habe einen Hadoop-Cluster, in dem für jede Datenfolie drei Kopien festgelegt sind.Wie wählt hdfs aus, welche Kopie gelöscht werden soll?

Eines Tages wird ein Datanode entfernt (angenommen, die darin gespeicherten Daten sind in Ordnung), und dann werden hdfs neue Kopien für die in diesem Knoten gespeicherten Daten erzeugen, so dass die Datenslide noch 3 Kopien haben. Aber wenn Datanode am nächsten Tag wieder eingesteckt wird, haben einige Datenrutschen 4 Kopien, dann muss hdfs 1 von 4 Kopien löschen.

Meine Frage ist, wie wählt hdfs die zu löschen? nach dem Zufallsprinzip? oder einfach die neueste löschen (das bedeutet, dass der Datenknoten gelöscht wird)?

+0

Die Blockstandorte der Datei auf dem Namenknoten ändern sich so, dass sie auf das "neue" dritte Replikat zeigen. Ich glaube nicht, dass Sie einfach die alte Festplatte wieder anhängen und die Daten automatisch korrigieren lassen. –

+0

Hallo @ 3692015, wenn diese oder jede Antwort Ihre Frage gelöst hat, beachten Sie bitte [akzeptieren] (http://meta.stackexchange.com/q/5234/179419), indem Sie auf das Häkchen klicken. Dies zeigt der breiteren Gemeinschaft, dass Sie eine Lösung gefunden haben und sowohl dem Antworter als auch Ihnen einen guten Ruf verschaffen. Es besteht keine Verpflichtung, dies zu tun. – mrsrinivas

Antwort

1

Frage: Aber wenn DataNode repariert wird und beginnt wieder zu arbeiten, einige Datenschieber haben vier Kopien, dann hat HDFS 1 von 4 Kopien

löschen Wie Sie erwähnt haben, In HDFS Wenn ein Datanode-Unplugged-Balancer die verlorene Kopie in einem anderen Knoten erstellt, um den korrekten Replikationsfaktor für die Blöcke beizubehalten.

Nun, wenn wir den gleichen/diff-Knoten in HDFS aufnehmen möchten, Wir tun format und enthalten den Knoten zum Cluster. Es wird also zu keinem Zeitpunkt zu viele replizierte Blöcke im Cluster geben.

+0

@ user3692015: Bitte lassen Sie mich wissen, es gibt noch weitere Fragen dazu. – mrsrinivas

0

Die Daten im Datenknoten werden gelöscht, wenn sie abstürzen. Deshalb wird in HDFS die Replikation beibehalten, um sicherzustellen, dass die Datenverfügbarkeit im Falle eines Datenknotenfehlers immer gegeben ist.

+0

Tut mir leid, ich bin immer noch verwirrt ... Wenn der Datenknoten einfach aus dem Cluster entfernt und dann wieder verbunden (Plug-in/Plug-in), wird es eine andere Geschichte sein? – user3692015

+0

Dies ist die gleiche wie beim Verbinden eines neuen Knotens (abhängig von der vorhandenen Konfiguration, die noch im Knoten vorhanden ist) mit dem Hadoop-Cluster, in dem sich kein Datenblock befindet. – Subash

+0

Ich denke nicht, dass das der Fall sein wird. Da der Datenknoten gerade wieder verbunden und fehlerfrei ist, wird der Datenknoten, wenn Sie nicht in der Ausschlussliste des Namensblocks aufgeführt sind, sich gerne wieder mit dem Namenknoten verbinden und seine Liste der Blöcke senden, wenn er sich verbindet. –

Verwandte Themen