如果我们在不增加文件数量的情况下增加存储在 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 所需的内存是增加还是减少?的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何在不扩展矩阵的情况下增加矩阵的维度?

如何在不增加 http 请求的情况下包含多个外部 javascript 文件

在不增加 VmSize 的情况下增加虚拟内存

如何在不大幅增加其大小的情况下在 PowerShell 中保存文本文件?

在不更改公共 IP 的情况下增加 EC2 容量

在不加载到内存的情况下将 HDF5 转换为 Parquet