Namenode文件分为块

时间:2016-05-31 18:45:34

标签: hdfs hadoop2

我知道文件在存储到HDFS时按名称节点拆分为块。但是当文件被分割时,块有可能包含该行的一部分。我的理解是否正确?因此,如果我将需要读取每一行的任何地图操作,那么我将错过映射器处理的一部分行。

谢谢!

2 个答案:

答案 0 :(得分:1)

除了@ RojoSam的回答之外,RecordReader还使用SPLIT_SLOP参数从其他块中读取单个文件的数据。如果数据在单个datanode上不完全可用,SPLIT_SLOP会给hadoop作业读取远程主机的%数据。

答案 1 :(得分:0)

是的,可以将一条线分成两个区块。块顶部的映射器使用的Reader读取下一个块的第一行并处理它。如果它不是第一个块,则读者总是跳过第一行。至少对于文本文件。其他格式的工作方式不同。

你不会错过任何一行