HDFS详解一

本文介绍了HDFS的基本概念,包括数据块、namenode和datanode的角色。详细讨论了数据块的大小,默认副本数量以及如何在不同机柜中分布以实现容错。还提及了小文件在HDFS中的挑战以及生产环境中副本数的设置。对于一个260M的文件,按128M的blockSize和3个副本计算,需要3个block,占用存储空间780M。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
一、HDFS的一些基本概念:
数据块(block):大文件会被分割成多个block进行存储,block大小默认为128MB。每一个block会在多个datanode上存储多份副本,默认是3份。
namenode:namenode负责管理文件目录、文件和block的对应关系以及block和datanode的对应关系。
datanode:datanode就负责存储了,当然大部分容错机制都是在datanode上实现的。
二、HDFS基本架构
在这里插入图片描述
Rack 是指机柜的意思,一个block的三个副本通常会保存到两个或者两个以上的机柜中(当然是机柜中的服务器),这样做的目的是做防灾容错,因为发生一个机柜掉电或者一个机柜的交换机挂了的概率还是蛮高的
1.block块
1、block:block是物理切块,在文件上传到HDFS文件系统后,对大文件将以每128MB的大小切分若干,存放在不同的DataNode上。例如一个文件130M,那么他会存被切分成2个块,一个块128M,另一个块2M.
2.小文件
1、HDFS 适应场景: 大文件存储,小文件是致命的
2、如果小文件很多的,则有可能将NN(4G=42亿字节)撑爆。例如:1个小文件(阈值<=30M),那么NN节点维护的字节大约250字节。一亿个小文件则是250b1亿=250亿.将会把NN节点撑爆。如果一亿个小文件合并成100万个大文件:250b1百万=2亿字节。
3、在生产上一般会:

1)调整小文件阈值
2)合并小文件:
a.数据未落地到hdfs之前合并
b.数据已经落到hdfs,调用spark service服务 。每天调度去合并 (-15天  业务周期)
3)小文件的危害:
a.撑爆NN。
b.影响hive、spark的计算。占用集群计算资源

3.副本数
1、如果是伪分布式,那么副本数只能为一。
2、生成上副

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值