1

Hadoop权威指南 说:

When you have Minimum split size 1, Maximum split size Long.MAX_VALUE, Block 
size 64MB then the Split size is 64MB.

TextInputFormat 的逻辑记录是行。由于每行长度不同,我们如何才能将大小精确分割为 64MB?

4

2 回答 2

3

HDFS 块是字节序列。他们不知道线条或任何其他结构。所以你可能有一个只由一个块组成的分割(当然大小为 64MB),在一行的中间结束(即不包括整个最后一行)。当您使用 TextInputFormat 读取它时,它也会注意从下一个块中读取一些字节,以便您也获得整个最后一行。

于 2012-07-08T00:24:52.337 回答
1

始终遵循 2 条规则:

  1. 确定您是否在记录中间
  2. 可以覆盖该记录并读取下一条完整记录

记录的前半部分作为上一个 InputSplit 的最后一条记录

于 2013-07-31T06:21:12.033 回答