如何确定 Hadoop 集群上 NameNode 维护的元数据的大小?

Posted

技术标签:

【中文标题】如何确定 Hadoop 集群上 NameNode 维护的元数据的大小?【英文标题】:How to determine size of metadata maintained by NameNode on Hadoop cluster? 【发布时间】:2016-06-03 06:27:48 【问题描述】:

我在 hadoop 集群上放了 100 个文件。我想确定 NameNode 维护的与这些文件相对应的元数据的大小。

【问题讨论】:

你可以直接去dfs.namenode.name.dirlocation查看这个 【参考方案1】:

我相信您所说的元数据是有关存储在 datanode 中的数据块的信息。所有这些细节都将保存在 namenode 内存 RAM 中。

Namenode 消耗大约 150 字节用于块元数据存储和 150 字节用于文件元数据存储。因此,让我们假设您的集群块大小为 128Mb,并且您的 100 个文件中的每个文件大小约为 100Mb。然后每个文件在namenode中消耗300字节的内存。名称节点将消耗 300*100=30000 字节的数据。这是考虑到复制是 1x。

详细讨论已完成here。

【讨论】:

块元数据不是存储在DataNode而不是NameNode上吗?来自 HDFS 论文:Each block replica on a DataNode is represented by two files in the local host’s native file system. The first file contains the data itself and the second file is block’s metadata including checksums for the block data and the block’s generation stamp.

以上是关于如何确定 Hadoop 集群上 NameNode 维护的元数据的大小?的主要内容,如果未能解决你的问题,请参考以下文章

hadoop集群中namenode没有启动

无法从 namenode (master) 启动集群:datanode (slave) 和 namenode (master) 上的 $HADOOP_HOME 不同

Hadoop集群搭建

格式化hdfs后,hadoop集群启动hdfs,namenode启动成功,datanode未启动

Hadoop 集群 - “hadoop”用户 ssh 通信

cloudera learning5:Hadoop集群高级配置