2016-08-15 11 views
0

Ich habe einen Hadoop-Cluster mit 4 DataNodes. Ich bin verwirrt zwischen den beiden Fragen: Datenreplikation und Datenverteilung.HDFS-Replikation und Datenverteilung

Angenommen, ich habe eine 2 GB-Datei und mein Replikationsfaktor ist 2 & Blockgröße ist 128 MB. Wenn ich diese Datei in hdfs einfüge, sehe ich, dass 2 Kopien von jeder 128 MB Blöcke erstellt werden und sie in Datanode3 und Datanode4 platziert werden. Aber Datanode2 & Datanode1 werden nicht verwendet. Die Daten werden wegen des Replikationsfaktors repliziert, aber ich erwarte einige Datenblöcke in Datenknoten1 und Datenknoten2. Ist etwas falsch? Nehmen wir an, ich habe 20 DataNodes und einen Replikationsfaktor von 2. Wenn ich eine Datei (2 GB) auf HDFS lege, erwarte ich wieder zwei Kopien von jeweils 128 MB, aber auch 128 MB Blöcke verteilt zwischen 20 DataNodes.

Antwort

0

Idealerweise sollte die 2GB-Datei unter allen verfügbaren DataNodes verteilt werden.

File Size: 2GB = 2048MB 
Block Size: 128MB 
Replication Factor: 2 

Mit obiger Konfiguration sollten Sie haben: 2048/128 * 2 Blöcke heißen 32 Blöcke. Und diese Blöcke sollten nahezu gleichmäßig auf alle DataNodes verteilt werden. Wenn Sie 4 DataNodes haben, sollte jeder von ihnen ungefähr 8 Blöcke haben.

Der Grund, warum ich daran denken konnte, dass ich die obige Situation nicht habe, ist, wenn die DataNodes ausgefallen sind. Überprüfen Sie, ob alle DataNodes aktiv sind: sudo -u hdfs hdfs dfsadmin -report

Verwandte Themen