zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

漫画大数据:如何解决 NameNode 内存持续增长的问题(二)

2023-03-07 09:02:23 时间

NameNode 的内存占用与 HDFS 中的目录数量、文件数量以及数量有关,随着目录和文件数量的增多,可以通过调大 NameNode 堆内存的方式来解决内存不足的问题,但毕竟物理内存是有上限的,不可能无限增大,还有其他什么好办法呢?

假设 Hadoop 集群资源足够支撑 50 个任务并发,每次处理数据前,需要花 1 分钟时间来创建任务,每个任务需要 5 分钟时间来完成 128MB 的数据分析工作。

当需要分析的数据量为 1.28GB 时,如果 Block 大小设置为 128MB,那么就会存在 10 个 Block,可以同时起 10 个任务并发运行,总的数据分析时长就是 5 分钟,再加上 1 分钟的创建任务时间,总共花费 5+1=6 分钟。

如果 Block 大小设置为 256MB,那么就会存在 5 个 Block,只能同时起 5 个任务并发运行(Block 一般作为文件读写的最小单元),总的数据分析时长就是 10 分钟,再加上 1 分钟的创建任务时间,总共花费 10+1=11 分钟。

此时,Block 大小设置为 128MB 时,效率更高

当需要分析的数据量为 128GB 时,如果 Block 大小设置为 128MB,那么就会存在 1000 个 Block,最多同时起 50 个任务并发运行,需要跑 20 轮并发才行,总的花费时长就是 20*(5+1)=120 分钟。

如果 Block 大小设置为 256MB,那么就会存在 500 个 Block,最多也是同时起 50 个任务并发运行,但只需要跑 10 轮并发,总的花费时长为 10*(10+1)=110 分钟。

此时,Block 大小设置为 256MB 时,效率更高