hadoop中的hdfs如何利用数据节点中块的空闲space?
How will the free space of a block in a data node be utilized by hdfs in hadoop?
我的文件大小为 10MB,我将其存储在 hadoop 中,但 hdfs 中的默认块大小为 64MB。因此,我的文件使用了 64 MB 中的 10 MB。 HDFS 将如何利用同一块中剩余的 54 MB 空闲 space?
从逻辑上讲,如果您的文件小于块大小,HDFS 会将特定文件的块大小减小到文件的大小。所以HDFS只会用10MB来存储10MB的小files.It不会浪费54MB或者留空。
这里详细描述了 HDFS 的小文件:http://blog.cloudera.com/blog/2009/02/the-small-files-problem/
剩余的 54MB 将用于其他文件。这就是它的工作原理,假设您对 2 个大小为 20MB 的小文件执行 put 或 copyFromLocal,并且您的块大小为 64MB。现在 HDFS 计算文件系统(不可用块)中的可用 space(假设您之前在 64MB 块中保存了一个 10MB 的文件,它也包括这些剩余的 54MB)并根据块给出报告。由于您有 2 个文件,复制因子为 3,因此即使您的文件大小小于块大小,也会为您的文件分配总共 6 个块。如果集群没有 6 个块(6*64MB),那么放置过程将失败。由于报告是根据 space 而不是块来获取的,因此您永远不会 运行 出块。文件以块为单位的唯一时间是在块分配时间。
阅读此 blog 了解更多信息。
我的文件大小为 10MB,我将其存储在 hadoop 中,但 hdfs 中的默认块大小为 64MB。因此,我的文件使用了 64 MB 中的 10 MB。 HDFS 将如何利用同一块中剩余的 54 MB 空闲 space?
从逻辑上讲,如果您的文件小于块大小,HDFS 会将特定文件的块大小减小到文件的大小。所以HDFS只会用10MB来存储10MB的小files.It不会浪费54MB或者留空。
这里详细描述了 HDFS 的小文件:http://blog.cloudera.com/blog/2009/02/the-small-files-problem/
剩余的 54MB 将用于其他文件。这就是它的工作原理,假设您对 2 个大小为 20MB 的小文件执行 put 或 copyFromLocal,并且您的块大小为 64MB。现在 HDFS 计算文件系统(不可用块)中的可用 space(假设您之前在 64MB 块中保存了一个 10MB 的文件,它也包括这些剩余的 54MB)并根据块给出报告。由于您有 2 个文件,复制因子为 3,因此即使您的文件大小小于块大小,也会为您的文件分配总共 6 个块。如果集群没有 6 个块(6*64MB),那么放置过程将失败。由于报告是根据 space 而不是块来获取的,因此您永远不会 运行 出块。文件以块为单位的唯一时间是在块分配时间。
阅读此 blog 了解更多信息。