HDFS的NameNode堆内存估算

NameNode堆内存估算

在HDFS中,数据和元数据是分开存储的,数据文件被分割成若干个数据块,每一个数据块默认备份3份,然后分布式的存储在所有的DataNode上,元数据会常驻在NameNode的内存中,而且随着数据量的增加,在NameNode中内存的元数据的大小也会随着增加,那么这个时候对NameNode的内存的估算就变的非常的重要了。

这里说的内存就是指NameNode所在JVM的堆内存

NameNode内存数据结构非常丰富,除了我们前面讲到的Namespace tree和BlocksMap外,其实还包括如LeaseManager/SnapShotManager/CacheManager/NetworkTopology等管理的数据,但是这些管理数据占用的内存非常的小,我们在估算NameNode内存的时候一般都忽略这些数据所占内存大小。所以在NameNode内存中,主要的内存分别被Namespace tree和BlocksMap占有,那么我们现在只要估算Namespace tree和BlocksMap所占内存即可。

我们在Namespace tree中估算了假设HDFS目录和文件数分别为1亿,Block总量在1亿情况下,整个Namespace在JVM中内存使用情况:

  • Total(Directory) = (8 + 72 + 80) ∗ 100M + 8 ∗ num(total children)
  • Total(Files) = (8 + 72 + 56) ∗ 100M + 8 ∗ num(total blocks
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值