2016-05-31 20 views
0

我知道,一個文件被存儲到HDFS時通過名稱節點分割成塊。但是,當文件被分割時,塊有可能包含該行的一部分。我的理解是否正確?因此,如果我將有任何需要讀取每一行的地圖操作,那麼我會錯過一些要通過mapper處理的部分行。Namenode文件分成塊

謝謝!

回答

0

是的,可以將一條線分成兩個塊。該塊末尾的映射器使用的讀取器讀取下一個塊的第一行並對其進行處理。如果它不是第一個塊,讀者總是跳過第一行。至少對於文本文件。其他格式工作不同。

你不會錯過任何一個線

1

此外的任何部分@ RojoSam的回答,SPLIT_SLOP參數由RecordReader讀取來自其他塊的單個文件的數據。 SPLIT_SLOP如果數據在單個datanode中不完全可用,hadoop作業將從遠程主機讀取%的數據。