对于一般硬盘来说,传输速率为100M/s,一般设置块的大小128M,因为128是2的7次方,最接近于100M。比如,块的大小是1TB,传输这个1TB的数据会非常慢,并且程序处理这个1TB的数据时,也非常的慢。不是的,它只占用文件本身大小的空间,其它空间别的文件也可以用,所以这128M的含义是HDFS数据块的大小,和每个文件的大小没有关系。HDFS的块设置太小,会增加寻址时间。例如,块的大小是1KB,文件大小是100KB,这时候要分100个块来存储文件,读取文件时要找到100个块的地址,会大大增加寻址时间。
hdfs 中的文件在物理上是分块存储 (block ) , 块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x/3.x版本中是128m,1.x版本中是64m。
如果一个文件文件小于128m,该文件会占用128m的空间吗?不是的,它只占用文件本身大小的空间,其它空间别的文件也可以用,所以这128m的含义是hdfs数据块的大小,和每个文件的大小没有关系。
把下图的流程过一下

思考:为什么块的大小不能设置太小,也不能设置太大?
hdfs的块设置太小,会增加寻址时间。例如,块的大小是1kb,文件大小是100kb,这时候要分100个块来存储文件,读取文件时要找到100个块的地址,会大大增加寻址时间。
如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。比如,块的大小是1tb,传输这个1tb的数据会非常慢,并且程序处理这个1tb的数据时,也非常的慢。
总结:hdfs块的大小设置主要取决于磁盘传输速率。对于一般硬盘来说,传输速率为100m/s,一般设置块的大小128m,因为128是2的7次方,最接近于100m。固态硬盘一般传输速率为200m/s~300m/s,可以设置块大小为256m。在企业,128m和256m是常用的块大小。
相关文章:
-
数据Data需要永久保存到数据库中数据库DB是运行在操作系统上的一个软件数据库管理系统DBMS是管理数据库的一个软件学习数据库就是学习如何使用DBMS创建、使用数据仓库来管理数据一…
-
本文对数据仓库、数据湖、湖仓一体、数据网格四个技术概念进行了辨析,并对它们的优势和局限给出了对比介绍。…
-
数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后,数据才能得到高性能、低成本、高效率、高质量的使用。高性能:良好的数…
-
主题虽然在信息包图中只占据标题的位置,但是却是信息打包方法中最重要的部分,当主题定义好之后,数据仓库中的逻辑模型也就基本成形了。数据仓库中的数据存储结构也需要在逻辑模型的设计阶段完…
-
REDck 通过云原生架构升级,能够处理万亿级数据规模,实现秒级 OLAP 查询,支持分钟级自动故障恢复、弹性扩缩容能力,成本优化效果显著。…
-
Hive表统计信息采集及应用
Hive提供了分析表和分区的功能,可以将分析后的统计信息存入元数据中,该功能可以自动执行分析表或手动执行分析表。自动执行分析主要针对新创建的表,可以通过配置启用...
[阅读全文]
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论