Hadoop框架---HDFS文件块



一.HDFS文件块大小

1.概念

HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认在Hadoop2.x/3.x版本是128M1.x版本是64M

如果我们想查看这个参数,可以查阅hdfs-default.xml文件,找到其中的dfs.blocksize部分如下:
请添加图片描述

注:我们这里通过如下shell命令将该配置文件下载到了本地再进行了查看:
请添加图片描述

可以看到官方文档中说明,默认块大小value字节数的大小存储,共134217728bytes,又因为1MB=1024KB=1024^2Bytes,经过转换得到恰好为128MB。(自用版本为Hadoop3.x系列)


2.寻址时间和传输时间

请添加图片描述
寻址时间在集群中查找到所需要的块block-i所需要的时间.
传输时间:对找到的块block-i进行上传/下载等操作进行传输所需要的时间.

注:一般,当寻址时间传输时间1%时,为最佳状态(专家)。比如,当遍历集群中的block块,直到找到我们想要的block,花费的寻址时间为10ms,那么此时传输时间=10ms/0.0.1=1000ms=1s。这个时候为最佳状态。


3.文件块大小与什么有关系(重点)?

目前磁盘的的传输速率普遍为100MB/s,由于块大小=磁盘传输速率*传输时间,所以块大小磁盘传输的速率快慢决定,某些公司使用的硬盘好,传输速率高,比如200MB/s~300MB/s,那么计算得到块大小在200M~300M,此时便可以设置为256M.(计算机中100不是整数,计算机中的进制单元1024)


思考:为什么块的大小不能设置太小,也不能设置太大?

(1)HDFS的块设置太小,会增加寻址时间,程序一直在寻找块的开始位置;
请添加图片描述
假设有一个文件大小100KB,我们此时把块大小设置为1KB,那么单这一个文件就需要被分为100个块,那么如果后续要查找该文件的话,由于要找该文件对应的100个块,这将会大幅增加寻址时间

(2)如果块设置太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间,导致程序在处理这块数据时,会非常慢。
请添加图片描述
反之,如果块过大,比如定义1T,那么一般的小文件可能都会被存储在同一个块中,显然寻址时间减少了很多,但是此时传输时间>>寻址时间,最终导致处理数据时非常


Conclusion:HDFS块的大小设置主要取决于磁盘传输速率!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丷江南南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值