每个分布式文件系统分块在NameNode的内存中大小约为250个字节,
此外还要加上文件和目录所需的250字节空间。
500字节 一个块
假设我们有5000个平均大小为20GB的文件并且使用默认的分布式文件系统分块大小(64MB)同时副本因子为3,
5000*20GB=102400 000M=97T
那么NameNode需要保存5千万个分块的信息,这些分块的大小加上文件系统的开销总共需要1.5GB的内存。
但是一切并非读者想象的那样,
在大部分情况下Hadoop集群会有更多的文件并且每个文件至少由一个分块组成,
因此NameNode上的内存使用率会更高。
所以根据集群的要求,我们应该预留空间为NameNode配置更多的内存。
为NameNode服务器配备64~94GB的内存是一个不错的选择。
物理CPU | V-CPU | 内存/GB | 存储/T | 部署方式 | 用途 |
32 | 0 | 128 | 72 | 物理机 | 数据存储DataNode-1 |
32 | 0 | 128 | 72 | 物理机 | 数据存储DataNode-2 |
32 | 0 | 128 | 72 | 物理机 | 数据存储DataNode-3 |
32 | 0 | 128 | 72 | 物理机 | 数据存储DataNode-4 |
32 | 0 | 128 | 48 | 物理机 | 数据存储NameNode-1+数据接收+BI服务 |
32 | 0 | 128 | 48 | 物理机 | 数据存储NameNode-2+数据接收+BI服务 |
0 | 8 | 10 | 0.5 | 虚拟机 | 容器编排系统K8S-MASTER1 |
0 | 8 | 10 | 0.5 | 虚拟机 | 容器编排系统K8S-MASTER2 |
0 | 8 | 10 | 0.5 | 虚拟机 | 容器编排系统K8S-MASTER3 |
0 | 4 | 8 | 0.5 | 虚拟机 | 容器编排系统K8S-NODE1 |
0 | 4 | 8 | 0.5 | 虚拟机 | 容器编排系统K8S-NODE2 |
0 | 4 | 8 | 0.5 | 虚拟机 | 容器编排系统K8S-NODE3 |
0 | 8 | 16 | 0.5 | 虚拟机 | 数据采集集成系统-1 |
0 | 8 | 16 | 0.5 | 虚拟机 | 数据采集集成系统-2 |
0 | 8 | 8 | 1 | 虚拟机 | PGSQL数据库服务器-1 |
0 | 8 | 8 | 1 | 虚拟机 | PGSQL数据库服务器-2 |