gpt4 book ai didi

hadoop - 关于 Hadoop 的大文件和小文件的元数据

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

我阅读了 Hadoop 的 HDFS,了解到 hadoop 旨在处理少量的大文件,而不是处理大量的小文件。

这是因为如果有大量的小文件,Namenode 的 内存会很快被吃掉。我很难理解这个论点。

考虑以下场景:

1000 个小文件,每个文件大小为 128 MB(与 hdfs block 的 block 大小相同)。

因此,这意味着 Namenode 的内存中有 1000 个条目保存此信息。

现在,考虑以下场景:

一个大文件, block 大小为 128 MB * 1000。

现在 Namenode 不会有 1000 个条目用于这个大的单个文件吗?

这个结论是否正确,在这两种情况下,Namenode 在内存中将有相同数量的关于文件 block 信息的条目?如果是这样,那么为什么 hadoop 对于少量大文件而不是大量小文件更有效呢?

任何人都可以帮助理解这一点吗?

最佳答案

Every file, directory and block in HDFS is represented as an object in the namenode’s memory, each of which occupies ~150 bytes.

案例 1:

Number of Files = 1000
Number of Blocks per file = 1
Total Number of Blocks = 1000 (Number of Files * Number of Blocks per file)
Total number of objects in Namenode's namespace = 2000 (Number of Files + Total Number of Blocks)
Total Namenode Memory Used = 2000 * 150 bytes

案例 2:

Number of Files = 1
Number of Blocks per file = 1000
Total Number of Blocks = 1000 (Number of Files * Number of Blocks per file)
Total number of objects in Namenode's namespace = 1001 (Number of Files + Total Number of Blocks)
Total Namenode Memory Used = 1001 * 150 bytes

在这两种情况下,数据占用的总大小保持不变。但在第一种情况下,使用了 300KB 的 namenode 内存,而在第二种情况下只使用了 150.15KB

关于hadoop - 关于 Hadoop 的大文件和小文件的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43155109/

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