HDFS存储计算题

HDFS是主从架构,适合储存大文件
Example1 .1个文件是130M,hdfs默认块的大小是128M,问这个文件分为几个快,实际存储容量?

Answer:分为2个块,128M+2M,实际存储还是130M

Example2.
dfs.blocksize 134217728=128M
1M=1024kb 1kb=1024字节
hdfs小文件存储:2M 3M 5M 每一个小文件都要占据一个快,(文件合并实际生产中需要)

了解一个新概念:副本数:3 一个快会被复制3份
副本数参数:dfsapplication 3
问题:一个130M的文件会被几个块,实际存储多大?
答:会被分为6个块,实际存储390M

Example3:
HDFS的namenode类似Windows系统中的文件目录名
一辆车128000ml的空间
一个瓶子 是128ml的空间
每个瓶子只有3-5ml的水
存储的实际内容:1000*3-5=3000~5000ml
瓶子有名称,1000个瓶子*文件名称字节数
1000个瓶子*30个字节=30000字节
扩展:一个中文汉字=2个字节,繁体字=3个字节,

小文件过多的话对于namenode的压力相当大
对于1个G的NN节点来说
NameNode能够维护多少万个小文件名称:1000*1024*1024 / 30=3495 2533.333个小文件的文件名称

我们最大维护3495 2533个小文件 ,每个小文件是1M,每个小文件都会占据block块,

假设3495 2533M文件合并成1个文件?
34952533 / 128 = 273066 个块
也就是只有一个名称
如何理解
1个文件名称是30个字节 –>NN 假设只有1000M空间
文件大小是130M –>DN

小文件合并成大文件:
3495 2533个小文件,每个小文件是1M,名称是30个字节 = 1000M
3495 2533 个block
3495 2533M 压缩成 一个文件128M的文件:27 3067个文件
27 3067个文件名称*30个字节 = 7.8M
NN维护压力从1000M–>7.8M


NN:存储文件名称
DN:存储数据块和存储数据块校验和
SNN:每隔一小时将namenode里的元数据、操作记录、操作日志(MetaData(Name,replicas,..)/home/foo/data,3…)把他们拉到SNN节点再发送给NN,可以理解为1小时的checkpoint(备份)

举个例子:
NN 13:00
SNN 13:00
fsimage:每小时生成的镜像文件
editlog:读写操作记录
cd /tmp/hadoop-hadoop/dfs/name/current
这里写图片描述
SNN每隔一小时将fsimage和editlog打包成一个新的镜像发送给NN

立个Flag,过一段时间我还能看的懂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值