在 HDFS 中遇到大量文件时,实际理想的 NameNode 内存大小是多少
what's the actual ideal NameNode memory size when meet a lot files in HDFS
我的 HDFS 集群中将有 2 亿个文件,我们知道每个文件将在 NameNode 内存中占用 150 个字节,再加上 3 个块,因此在 NN 中总共有 600 个字节。
所以我将我的 NN 内存设置为 250GB 以很好地处理 2 亿个文件。我的问题是250GB这么大的内存,会不会对GC造成太大的压力?为NN创建250GB内存是否可行
Can someone just say something, why no body answer??
您的名称节点中可以有 256 GB 的物理内存。如果您的数据大量增加,请考虑 hdfs federation。我假设您在名称节点主机中已经拥有多核(有或没有超线程)。猜猜以下 link 解决了您对 GC 的担忧:
https://community.hortonworks.com/articles/14170/namenode-garbage-collection-configuration-best-pra.html
理想的名称节点内存大小约为数据元使用的总 space + OS + 守护进程的大小和 20-30% space 用于处理相关数据。
您还应该考虑数据进入集群的速率。如果您有 1TB/天的数据传入,那么您必须考虑更大的内存驱动器,否则您很快就会 运行 内存不足。
始终建议在任何时候都至少有 20% 的可用内存。这将有助于避免名称节点进入完整的垃圾收集。
正如 Marco 之前指定的那样,您可以参考 NameNode Garbage Collection Configuration: Best Practices and Rationale 进行 GC 配置。
在你的情况下,如果你不打算获取大量数据并且不打算对现有数据进行大量操作,那么 256 看起来不错。
我的 HDFS 集群中将有 2 亿个文件,我们知道每个文件将在 NameNode 内存中占用 150 个字节,再加上 3 个块,因此在 NN 中总共有 600 个字节。 所以我将我的 NN 内存设置为 250GB 以很好地处理 2 亿个文件。我的问题是250GB这么大的内存,会不会对GC造成太大的压力?为NN创建250GB内存是否可行
Can someone just say something, why no body answer??
您的名称节点中可以有 256 GB 的物理内存。如果您的数据大量增加,请考虑 hdfs federation。我假设您在名称节点主机中已经拥有多核(有或没有超线程)。猜猜以下 link 解决了您对 GC 的担忧: https://community.hortonworks.com/articles/14170/namenode-garbage-collection-configuration-best-pra.html
理想的名称节点内存大小约为数据元使用的总 space + OS + 守护进程的大小和 20-30% space 用于处理相关数据。
您还应该考虑数据进入集群的速率。如果您有 1TB/天的数据传入,那么您必须考虑更大的内存驱动器,否则您很快就会 运行 内存不足。
始终建议在任何时候都至少有 20% 的可用内存。这将有助于避免名称节点进入完整的垃圾收集。 正如 Marco 之前指定的那样,您可以参考 NameNode Garbage Collection Configuration: Best Practices and Rationale 进行 GC 配置。
在你的情况下,如果你不打算获取大量数据并且不打算对现有数据进行大量操作,那么 256 看起来不错。