我将在我的hdfs集群中有2亿个文件,我们知道每个文件将在namenode内存中占用150字节,加上3个块,因此nn中总共有600字节。所以我把我的nn内存设置为250gb,以很好地处理2亿个文件。我的问题是250gb这么大的内存,会不会对gc造成太大的压力?为nn创建250gb内存是否可行。
Can someone just say something, why no body answer??
fiei3ece1#
理想的名称节点内存大小是meta数据使用的总空间+操作系统+守护进程的大小,以及处理相关数据的20-30%的空间。您还应该考虑数据进入集群的速率。如果数据以1tb/天的速度输入,则必须考虑使用更大的内存驱动器,否则很快就会耗尽内存。它总是建议在任何时候至少有20%的内存可用。这将有助于避免name节点进入完整的垃圾收集。正如marco在前面指定的,您可以参考namenode垃圾收集配置:gc配置的最佳实践和基本原理。在您的例子中,如果您不打算获取大量数据,也不打算对现有数据执行大量操作,那么256看起来不错。参考:如何规划hadoop集群的容量?另请参阅:为新的hadoop集群选择合适的硬件
34gzjxbg2#
namenode中可以有256 gb的物理内存。如果您的数据在大量增加,请考虑hdfs联合。我假设您已经有多核(有或没有超线程)在名称节点主机。下面的链接可以解决您的gc问题:https://community.hortonworks.com/articles/14170/namenode-garbage-collection-configuration-best-pra.html
2条答案
按热度按时间fiei3ece1#
理想的名称节点内存大小是meta数据使用的总空间+操作系统+守护进程的大小,以及处理相关数据的20-30%的空间。
您还应该考虑数据进入集群的速率。如果数据以1tb/天的速度输入,则必须考虑使用更大的内存驱动器,否则很快就会耗尽内存。
它总是建议在任何时候至少有20%的内存可用。这将有助于避免name节点进入完整的垃圾收集。正如marco在前面指定的,您可以参考namenode垃圾收集配置:gc配置的最佳实践和基本原理。
在您的例子中,如果您不打算获取大量数据,也不打算对现有数据执行大量操作,那么256看起来不错。
参考:如何规划hadoop集群的容量?
另请参阅:为新的hadoop集群选择合适的硬件
34gzjxbg2#
namenode中可以有256 gb的物理内存。如果您的数据在大量增加,请考虑hdfs联合。我假设您已经有多核(有或没有超线程)在名称节点主机。下面的链接可以解决您的gc问题:https://community.hortonworks.com/articles/14170/namenode-garbage-collection-configuration-best-pra.html