首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hadoop的namenode的内存消耗?

hadoop的namenode的内存消耗?
EN

Stack Overflow用户
提问于 2012-11-09 17:03:37
回答 4查看 26.4K关注 0票数 11

有没有人能详细分析一下namenode的内存消耗?或者有什么参考资料?在network.Thank里找不到素材了吗!

EN

回答 4

Stack Overflow用户

发布于 2012-11-09 17:29:12

我认为内存消耗将取决于您的HDFS设置,因此取决于HDFS的整体大小,并与块大小相关。从Hadoop NameNode wiki

使用一个有大量内存的好服务器。RAM越多,文件系统就越大,块大小就越小。

来自https://twiki.opensciencegrid.org/bin/view/Documentation/HadoopUnderstanding

Hadoop:

的核心元数据服务器。这是系统中最关键的部分,并且只能有其中之一。这将存储文件系统映像和文件系统日志。namenode保存所有文件系统布局信息(文件、块、目录、权限等)和块位置。文件系统布局保存在磁盘上,块位置仅保存在内存中。当客户端打开文件时,namenode会告诉客户端文件中所有块的位置;然后客户端就不再需要与namenode通信来进行数据传输。

同一站点推荐以下内容:

Namenode:我们建议内存至少为8 2GB (最低为2 2GB内存),最好是16 2GB或更大。粗略的经验法则是每100TB原始磁盘空间1 1GB;实际需求大约是每百万个对象(文件、目录和块)1 1GB。CPU要求是任何现代多核服务器CPU。通常,namenode只使用2-5%的CPU。由于这是单点故障,因此最重要的要求是可靠的硬件,而不是高性能的硬件。我们建议使用具有冗余电源和至少2个硬盘的节点。

有关内存使用情况的更详细分析,请查看此链接:https://issues.apache.org/jira/browse/HADOOP-1687

您可能还会发现这个问题很有趣:Hadoop namenode memory usage

票数 13
EN

Stack Overflow用户

发布于 2012-11-10 04:10:05

NameNode (NN)有几个技术限制,面对其中任何一个都会限制您的可伸缩性。

  1. 内存。NN每个块消耗大约150字节。从这里你可以计算你的数据需要多少内存。有很好的讨论:Namenode file quantity limit.
  2. IO.NN为文件系统的每个更改(如创建、删除数据块等)执行1个IO。因此,您的本地IO应该允许足够的。很难估计你需要多少。考虑到我们在块数量上受到内存的限制,除非你的集群非常大,否则你不会要求这个限制。如果是,请考虑固态硬盘。
  3. CPU。Namenode具有相当大的负载,可以跟踪所有数据节点上所有块的运行状况。每个datanode在一段时间内报告其所有块的状态。同样,除非集群不是太大,否则应该不会有问题。
票数 6
EN

Stack Overflow用户

发布于 2016-09-15 21:11:56

示例计算

200节点集群

24TB/节点

128MB数据块大小

复制因子=3

需要多少空间?

块= 200*24*2^20/(128*3)

~1200万个数据块

大约12,000 MB内存。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13304941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档