如果我们在不增加文件数量的情况下增加存储在 HDFS 中的文件大小,NameNode 所需的内存是增加还是减少?
Posted
技术标签:
【中文标题】如果我们在不增加文件数量的情况下增加存储在 HDFS 中的文件大小,NameNode 所需的内存是增加还是减少?【英文标题】:If we increase the size of files stored in HDFS without increasing the number of files, does the memory required by the NameNode increase or decrease? 【发布时间】:2017-05-22 01:14:25 【问题描述】:我收到了https://www.tutorialspoint.com/hadoop/hadoop_mock_test.htm?min=65&max=96 的问题(Q25)
Q 25 - 如果我们增加存储在 HDFS 中的文件的大小而不 增加文件数,然后是namenode所需的内存
A - 减少
B - 增加
C - 保持不变
D - 可能增加也可能不增加
在答案键available here 中,它说NameNode 所需的内存减少,但我看不到这是怎么回事。
根据https://www.cloudera.com/documentation/enterprise/latest/topics/admin_nn_memory_config.html#concept_r14_qpc_r5 每个命名空间对象占用 150 个字节,并且为每个文件和每个块存储一个命名空间对象。例如。大小为 3 个块的文件在 NameNode 上占用 4 个命名空间对象。
因此,命名空间对象占用的内存 = (nFiles + nBlocks) * 150
如果是这种情况,NameNode 所需的内存不应该增加吗?因为 nFiles 是常数,而 nBlocks 会增加。
【问题讨论】:
对不起,我最初复制粘贴了错误的问题,现在已修复。 【参考方案1】:如果我们假设他们的答案是正确的,那么我们还必须假设我们真正改变的是块大小。如果块大小增加,则需要更少的块来保存相同的存储空间。
【讨论】:
以上是关于如果我们在不增加文件数量的情况下增加存储在 HDFS 中的文件大小,NameNode 所需的内存是增加还是减少?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不增加 http 请求的情况下包含多个外部 javascript 文件