关于 HDFS,我从他们网站的数据复制部分(链接下方)读到
http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html#Data+Replication
'文件中的所有 block 除了最后一个 block 都是相同的大小'
你能告诉我最后一个 block 大小不同的原因是什么吗?
总内存分配可能在这里发挥作用吗?
但是,如果内存大小不是问题,最后一个 block 的大小是否仍然与文件的其余 block 大小不同?
如果是,您能否详细说明一下?
任何与 JIRA 相关的开发工作链接都将不胜感激。
最佳答案
其实这根本不是问题。事实上,不确定文件的最后一个 block 是否可以具有相同的大小。
考虑一个大小为 1000 MB 的文件, block 为 128MB,然后文件将被分成 8 个 block ,其中前 7 个 block 的大小为偶数,等于 128MB。
7 个 block 的总大小为 896MB(7*128MB),因此剩余大小为 104MB(1000-896)。所以最后一个 block 的实际大小为 104 MB,其中其他 7 个 block 为 128 MB。
namenode 将为存储在 HDFS 上的文件的每个 block 分配数据 block 。对于大小小于数据 block 大小的 block ,它不会做任何考虑。
HDFS 旨在将数据 block 存储在大小相等的数据 block 中,以便名称节点可以轻松计算和维护数据节点上可用的数据 block 。
关于hadoop - 关于 block 大小的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217316/