hdfs详解之块、小文件和副本数

hdfs详解之块、小文件和副本数,第1张

1、block:block是物理切块,在文件上传到HDFS文件系统后,对大文件将以每128MB的大小切分若干,存放在不同的DataNode上。例如一个文件130M,那么他会存被切分成2个块,一个块128M,另一个块2M.

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的计算。占用集群计算资源

1、如果是伪分布式,那么副本数只能为一。

2、生成上副本数一般也是官方默认参数: 3份

如果一个文件130M,副本数为3。那么第一个block128M,有三份。另外一个block2M,也有三份。

题目:

blockSize128M,副本数3份,那么一个文件260M,请问多少块,多少实际存储?

260%128=2....4M 3个块 3个副本=9块

260M 3=780M

打开Ambari看到hdfs报警[alert]: Total Blocks:[*], Missing Blocks:[*] , 发现是有些文件块损坏了. 启动hdfs的时候发现也起不来了, 日志一直循环下面的东西.

NameNode一直处于安全模式

打开NameNode UI可以看到如下的描述:

说明我们的损坏的文件比例超过了阈值, 这个阈值配置在hdfs中, 下图是从Ambari的配置管理, 这里配置的是100%, 也就是说不允许任何一个块损坏掉. 如果我们配置成99%应该就不会触发safemode了.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11721902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存