gpt4 book ai didi

hadoop - HDFS 和小文件 - 第 2 部分

转载 作者:可可西里 更新时间:2023-11-01 15:10:07 26 4
gpt4 key购买 nike

这是引用问题:Small files and HDFS blocks答案引用了 Hadoop:权威指南:

Unlike a filesystem for a single disk, a file in HDFS that is smaller than a single block does not occupy a full block’s worth of underlying storage.

我完全同意这一点,因为根据我的理解, block 只是名称节点映射整个集群中哪个文件所在位置的一种方式。由于 HDFS 是我们常规文件系统的抽象,如果 block 大小为 128MB,140 MB 不可能占用 HDFS 上的 256 MB 空间,或者换句话说, block 中的剩余空间不会被浪费。

但是,我在 Hadoop Block size and file size issue 中偶然发现了另一个答案。其中说:

There are limited number of blocks available dependent on the capacity of the HDFS. You are wasting blocks as you will run out of them before utilizing all the actual storage capacity.

这是否意味着如果我有 1280 MB 的 HDFS 存储并且我尝试加载 11 个文件,每个文件大小为 1 MB(考虑 128 MB block 大小和每个 block 1 个复制因子),HDFS 将抛出有关存储的错误?

如果我在整个过程中假设有任何错误,请更正。谢谢!

最佳答案

没有。 HDFS 不会抛出错误,因为

  1. 1280 MB 的存储限制尚未用完。
  2. 11 个元条目不会超过名称节点上的内存限制。

例如,假设我们在名称节点上有 3GB 可用内存。 Namenode 需要为每个文件、每个 block 存储元条目。每个条目大约需要。 150 个字节。因此,您可以大致存储最大值。 100 万个文件,每个文件有一个 block 。因此,即使你有更多的存储容量,如果你有多个小文件达到namenode的内存限制,你将无法充分利用它。

但是,问题中提到的具体示例没有达到此内存限制。因此,不应有任何错误。

考虑一下,名称节点中可用内存仅为 300 字节* 10 的假设场景。在这种情况下,它应该为请求存储第 11 个 block 给出错误。

引用资料:

关于hadoop - HDFS 和小文件 - 第 2 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44967519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com