gpt4 book ai didi

hadoop - HDFS - 一个大文件或几个 block 大小的小文件

转载 作者:行者123 更新时间:2023-12-05 02:10:36 24 4
gpt4 key购买 nike

所以我在理解应该以何种方式存储大文件时遇到了一些问题。例如,我的 HDFS 中的 block 大小为 128MB,而我有一个 1GB 的文件。

我知道保存小于 block 大小的文件不是最佳做法,我理解原因。

但是我应该如何处理大文件,对于我的 1GB 文件,我应该保存 1 个文件还是 8 个每个 128MB 的文件,为什么?

最佳答案

您可以使用 1GB 存储 1 个文件。 Hadoop 将自动将该文件存储在 8 个 block 中。Hadoop 是为大文件而不是小文件设计的。请注意,Block 是 hadoop 中的物理存储。

由于您没有提到集群中的拆分大小,所以我假设它是 128 MB。拆分是您并行性所依赖的东西。因此,如果您在 128 个分割大小上处理 1 GB 文件,将调用 8 个映射器(每个分割上有 1 个映射器)。如果您存储 8 个文件,每个文件 128 MB。您的 Namenode 将有不必要的开销来维护有关这 8 个文件的信息。在 8 个文件的情况下,与 1 GB 文件相比性能可能或多或少相似,但在 1 GB 文件和 8 个 block 的情况下肯定会更好。

不要与 hadoop 中的 block 混淆,它们与其他文件系统一样只是存储单元。无论文件有多大,Hadoop 都会自动处理存储,并将文件分成 block 。在 i/o 操作中存储小文件将是不必要的开销。

关于hadoop - HDFS - 一个大文件或几个 block 大小的小文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605044/

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