十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
请参考 上一个 链接地址:
hdfs为什么不擅长存储大量小文件
https://blog.51cto.com/12445535/2354951
概述:namenode replication(复制)
复制
默认块复制因子(dfs.replication)为3。复制影响磁盘空间但不影响内存消耗。复制会更改每个块所需的存储量,但不会更改块的数量。如果DataNode上的一个块文件(由NameNode上的一个块表示)被复制三次,则块文件的数量将增加三倍,但不会代表它们的块数。
关闭复制时,一个192 MB的文件占用192 MB的磁盘空间和大约450字节的内存。
//(计算方式为:128+64 也就是1个文件inode+2个块 3150 大约消耗 450字节的内存)
如果你有一百万个这样的文件,或192 TB的数据,你需要192 TB的磁盘空间,而不考虑RPC工作负载,450 MB内存:(100万inode + 200万个块) 150个字节。启用默认复制后,您需要576 TB的磁盘空间:(192 TB * 3)但内存使用率保持不变,450 MB。当您考虑簿记和RPC,并遵循每百万个块1 GB堆内存的建议时,对此方案更安全的估计是2 GB内存(有或没有复制)。
例子
示例1:估计使用的NameNode堆内存
Alice,Bob和Carl每个磁盘上都有1 GB(1024 MB)的数据,但切成不同大小的文件。 Alice和Bob的文件是块大小的一部分,需要的内存最少。 Carl没有用不必要的命名空间对象填充堆。
Alice:1 x 1024 MB文件
1个文件inode
8块(1024 MB / 128 MB)
总计= 9个对象* 150个字节= 1,350个字节的堆内存
Bob:8 x 128 MB文件
8个文件inode
8个块
总计= 16个对象* 150个字节= 2,400个字节的堆内存
Carl:1,024 x 1 MB文件
1,024个文件inode
1,024个街区
总计= 2,048个对象* 150个字节= 307,200个字节的堆内存
**计算实例//生产可用 根据已知磁盘大小去计算需要多大的namenode堆内存
示例2:估计所需的NameNode堆内存**
在该示例中,通过考虑群集的容量来估计存储器。值四舍五入。两个集群都物理存储4800 TB或大约3600万个块文件(默认块大小)。复制确定有多少名称空间块代表这些块文件。
群集A:每个24 TB的200个主机= 4800 TB。
Blocksize = 128 MB,复制= 1
以MB为单位的群集容量:200 24,000,000 MB = 4,800,000,000 MB(4800 TB)
每个块所需的磁盘空间:每块128 MB 1 =每块128 MB存储空间
块中的群集容量:4,800,000,000 MB / 128 MB = 36,000,000块
在容量方面,建议分配每百万个块1 GB的内存,群集A需要36 GB的大堆空间。
群集B:每个24 TB的200个主机= 4800 TB。
Blocksize = 128 MB,复制= 3
以MB为单位的群集容量:200 24,000,000 MB = 4,800,000,000 MB(4800 TB)
每个块所需的磁盘空间:每块128 MB 3 =每块384 MB存储空间
块中的群集容量:4,800,000,000 MB / 384 MB = 12,000,000个块
在容量方面,建议为每百万个块分配1 GB内存,群集B需要12 GB的大堆空间。
群集A和群集B都存储相同数量的块文件。但是,在群集A中,每个块文件都是唯一的,并由NameNode上的一个块表示;在群集B中,只有三分之一是唯一的,三分之二是副本。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。