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的元数据空间
②块太小,在进行读写操作时,会消耗额外的寻址时间

出处:HDFS文件块大小(重点) - 孙晨c - 博客园

【HDFS】HDFS文件块大小(重点)相关推荐

  1. hadoop 修复hdfs中文件块错误 和文件修复 Error: java.io.IOException: Cannot obtain block length for LocatedBlock

    一:问题 Error: java.io.IOException: Cannot obtain block length for LocatedBlock Error: java.io.IOExcept ...

  2. linux数据块的大小不一样,HDFS块大小默认为什么是64MB(或者是128MB)

    1 HDFS的设计特点? 可以进行超大文件存储 对商用硬件要求不高 式数据访问:适合一次写入,多次读出的场景,适合用来做数据分析,并不适合用来做网盘应用等文件系统. HDFS只支持单个写入者,而且文件 ...

  3. hdfs fsck命令查看HDFS文件对应的文件块信息(Block)和位置信息(Locations)

    关键字:hdfs fsck.block.locations 在HDFS中,提供了fsck命令,用于检查HDFS上文件和目录的健康状态.获取文件的block信息和位置信息等. fsck命令必须由HDFS ...

  4. HDFS概述(2)————Block块大小设置

    参考: HDFS概述(4)----HDFS权限 HDFS概述(3)----HDFS Federation HDFS概述(2)----Block块大小设置 HDFS概述(1)----HDFS架构 问题 ...

  5. 为什么HDFS中的块如此之大?

    HDFS中的块大小默认为64MB,为什么说它如此之大,这是与磁盘块相比得出的.所以在了解HDFS块之前,我们需要了解下磁盘上的块. 磁盘块 每个磁盘都有默认的数据块大小,这是磁盘进行数据读写的最小单位 ...

  6. hdfs删除文件 java_分布式文件系统HDFS——基础篇

    我们在上一篇<向Hadoop Say Hello--初识Hadoop>中已经对HDFS进行了简单介绍,还不清楚HDFS是什么的朋友可以点击上面链接先看上一篇,在这一篇中我们聚焦HDFS,从 ...

  7. hdfs的副本数为啥增加了_HDFS详解之块大小和副本数

    1.HDFS HDFS : 伪分布式(学习) NN DN SNN sbin/start-dfs.sh(开启hdfs使用的脚本) bin/hdfs dfs -ls (输入命令加前缀bin/hdfs df ...

  8. hadoop fs:du统计hdfs文件(目录下文件)大小的用法

    hadoop fs:du统计hdfs文件(目录下文件)大小的用法 hadoop fs 更多用法,请参考官网:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_s ...

  9. 统计HDFS文件数量,大小,以及在某范围大小的文件数量

    统计HDFS文件数量大小,小于20M文件数量 hadoop fs -du -h / # 统计文件大小 hadoop fs -count / # 统计文件数量,返回的数据是目录个数,文件个数,文件总计大 ...

最新文章

  1. 【天命奇御】成就进度62/71的通关攻略(1·开篇前言)
  2. AOF-Redis设计与实现
  3. Swagger UI
  4. java is start_PHP IntlChar::isJavaIDStart()用法及代码示例
  5. 性能测试之JMeter配置元件【随机变量】
  6. removeAttribute与removeAttributeNode的区别
  7. 为什么要Code Review
  8. 带妹妹学密码系列4---流密码(ZUC)
  9. Simplify3D打印参数设置
  10. django系列9 --- 迁移相关
  11. 王小波:资本主义居然用代码行发工资,真虚伪!
  12. 盯市盈亏、浮动盈亏、总盈亏的计算方法
  13. 抽奖概率 php_php实现抽奖概率算法代码
  14. 不解决产能低下的问题,直供模式也拯救不了小米
  15. 微信视频号从零到月入万元攻略
  16. NOIP 提高组 2012 / 洛谷P1080 国王游戏 题解
  17. 人脸定位原来这么简单,小白也能上手人脸识别——人脸识别概述
  18. 【硬刚大数据】从零到大数据专家之数据仓库体系建模实施注意事项小总结
  19. tar+opensll 加密压缩解压
  20. Mysql自动超时重连导致的中文乱码问题

热门文章

  1. iOS编辑预览视频小结
  2. Matlab积分运算
  3. 学美工、平面设计、UI设计,哪个有前途?
  4. [家里蹲大学数学杂志]第218期正项级数的审敛法与人生态度
  5. TypeScript学习总结
  6. bzoj1050 [HAOI2006]旅行comf(并查集)
  7. 小程序在线客服完整实现
  8. 牛客网 OI 赛制测试赛
  9. 小白必看:IT转行需要注意什么,这几个问题很重要
  10. 字节鏖战美团的关键一役