2016-05-31 14 views
0

Ich bin mir bewusst, dass eine Datei in Blöcke von Name Node aufgeteilt wird, während in HDFS gespeichert. Aber wenn die Datei geteilt wird, besteht die Möglichkeit, dass ein Block einen Teil der Linie enthält. Ist mein Verständnis richtig? Also, wenn ich irgendeine Kartenoperation haben werde, die jede Zeile lesen muss, dann werde ich einen Teil einer Zeile vermissen, um von Mapper verarbeitet zu werden.Nameode Dateieinteilung in Blöcke

Danke !!

Antwort

0

Ja, es ist möglich, dass eine Linie in zwei Blöcke aufgeteilt wird. Der vom Mapper am Ende des Blocks verwendete Reader liest die erste Zeile für den nächsten Block und verarbeitet sie. Wenn es nicht der erste Block ist, überspringt der Leser immer die erste Zeile. Zumindest für Textdateien. Andere Formate funktionieren anders.

Sie werden keinen Teil einer Antwort des

1

Neben @ RojoSam Linie vermissen wird SPLIT_SLOP Parameter von RecordReader verwendet, um Daten aus einer einzigen Datei von anderen Blöcken zu lesen. SPLIT_SLOP gibt einen Hadoop-Auftrag zum Lesen von% der Daten vom Remote-Host aus, wenn die Daten nicht vollständig in einem einzigen Datenknoten verfügbar sind.