假设块大小为 128MB,则集群有 10GB(因此大约 80 个可用块)。假设我创建了 10 个小文件,这些文件总共占用磁盘上 128MB(块文件、校验和、复制...)和 10 个 HDFS 块。如果我想向HDFS添加另一个小文件,那么HDFS使用什么来计算可用块,是使用的块还是实际的磁盘使用量?
80 个块 - 10 个块 = 70 个可用块或 (10 GB - 128 MB)/128 MB = 79 个可用块?
Thanks.
块大小只是 HDFS 如何在集群中分割和分发文件的指示 - HDFS 中没有物理保留的块数量(如果您愿意,您可以更改每个单独文件的块大小)
对于您的示例,您还需要考虑复制因子和校验和文件,但本质上添加大量小文件(小于块大小)并不意味着您浪费了“可用块” - 它们占用了尽可能多的空间根据需要(您再次需要记住,复制将增加存储文件所需的物理数据占用空间),并且“可用块”的数量将更接近您的第二次计算。
最后一点 - 拥有大量小文件意味着您的名称节点将需要更多内存来跟踪它们(块大小、位置等),并且处理 128x1MB 文件的效率通常低于处理单个 128MB 文件的效率(尽管这取决于您的方式)重新处理)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)