4

假设块大小为 128MB,则集群有 10GB(大约 80 个可用块)。假设我创建了 10 个小文件,它们在磁盘上总共占用 128MB(块文件、校验和、复制......)和 10 个 HDFS 块。如果我想向HDFS添加另一个小文件,那么HDFS使用什么,使用的块或实际的磁盘使用量来计算可用块?

80 个块 - 10 个块 = 70 个可用块或 (10 GB - 128 MB)/128 MB = 79 个可用块?

谢谢。

4

1 回答 1

8

块大小只是 HDFS 如何在集群中拆分和分发文件的指示 - HDFS 中没有物理保留的块数量(如果您愿意,可以更改每个单独文件的块大小)

对于您的示例,您还需要考虑复制因子和校验和文件,但本质上添加大量小文件(小于块大小)并不意味着您浪费了“可用块”——它们占用了尽可能多的空间正如他们需要的那样(您需要再次记住,复制会增加存储文件所需的物理数据占用空间)并且“可用块”的数量将更接近您的第二次计算。

最后一点 - 有很多小文件意味着您的名称节点将需要更多内存来跟踪它们(块大小,位置等),并且处理 128x1MB 文件的效率通常低于单个 128MB 文件(尽管这取决于你如何'重新处理)

于 2013-03-28T11:03:29.920 回答