1.block块
1、block:block是物理切块,在文件上传到HDFS文件系统后,对大文件将以每128MB的大小切分若干,存放在不同的DataNode上。例如一个文件130M,那么他会存被切分成2个块,一个块128M,另一个块2M.
2.小文件
1、HDFS 适应场景: 大文件存储,小文件是致命的
2、如果小文件很多的,则有可能将NN(4G=42亿字节)撑爆。例如:1个小文件(阈值<=30M),那么NN节点维护的字节大约250字节。一亿个小文件则是250b*
1亿=250亿.将会把NN节点撑爆。如果一亿个小文件合并成100万个大文件:250b*
1百万=2亿字节。
3、在生产上一般会:
1)调整小文件阈值
2)合并小文件:
a.数据未落地到hdfs之前合并
b.数据已经落到hdfs,调用spark service服务 。每天调度去合并 (-15天 业务周期)
3)小文件的危害:
a.撑爆NN。
b.影响hive、spark的计算。占用集群计算资源
3.副本数
1、如果是伪分布式,那么副本数只能为一。
2、生成上副本数一般也是官方默认参数: 3份
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
如果一个文件130M,副本数为3。那么第一个block128M,有三份。另外一个block2M,也有三份。
题目:
blockSize128M,副本数3份,那么一个文件260M,请问多少块,多少实际存储?
260%128=2....4M 3个块3个副本=9块
260M3=780M
网友评论