前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >HDFS文件块大小(重点)

HDFS文件块大小(重点)

作者头像
孙晨c
发布2020-07-09 10:18:19
发布2020-07-09 10:18:19
2.1K0
举报
文章被收录于专栏:无题~无题~

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

那么,问题来了,为什么一个block的大小就是128M呢?

默认为128M的原因,基于最佳传输损耗理论!

不论对磁盘的文件进行读还是写,都需要先进行寻址!

最佳传输损耗理论:在一次传输中,寻址时间占用总传输时间的1%时,本次传输的损耗最小,为最佳性价比传输! 目前硬件的发展条件,普通磁盘写的速率大概为100M/S, 寻址时间一般为10ms!

10ms / 1% = 1s 1s * 100M/S=100M

块在传输时,每64K还需要校验一次,因此块大小,必须为2的n次方,最接近100M的就是128M!

如果公司使用的是固态硬盘,写的速度是300M/S,将块大小调整到 256M 如果公司使用的是固态硬盘,写的速度是500M/S,将块大小调整到 512M

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

不能太大: 当前有文件a, 1G 128M一块 1G存8块 , 取第一块 1G一块 1G存1块 , 取第一块 只需要读取a文件0-128M部分的内容 ①在一些分块读取的场景,不够灵活,会带来额外的网络消耗 ②在上传文件时,一旦发生故障,会造成资源的浪费

不能太小: 文件a,128M 1M一块: 128个块,生成128个块的映射信息 128M一块, 1个块,一个块的映射信息 ①块太小,同样大小的文件,会占用过多的NN的元数据空间 ②块太小,在进行读写操作时,会消耗额外的寻址时间

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档