About HDFS blocks

本文探讨了HDFS中块(Block)的概念及其大小设定的原因。HDFS的块默认为64MB,远大于传统文件系统的块大小。文章解释了这种设计是为了最小化寻道时间,使数据传输速度更接近硬盘的速度。同时讨论了块大小对MapReduce任务的影响。

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

  还是原小站的东西,学习Hadoop的一些心得,扔这里保管先吧。

  HDFS也有块(Block)的概念,但它的块是一个很大的单元,默认是64MB。像硬盘中的文件系统一样,在HDFS中的文件将会按块大小进行分解,并作为独立的单元进行存储。但和硬盘中的文件系统不一样的是,存储在块中的一个比块小的文件并不会占据一个块大小的硬盘物理空间(HDFS中一个块只存储一个文件的内容)。
  那为什么HDFS中的块如此之大呢?
  HDFS的块之所以这么大,主要原因就是为了把寻道(Seek)时间最小化。如果一个块足够大,那么从硬盘传输数据的时间将远远大于寻找块的起始位置的时间。这样就使得HDFS的数据传输速度和硬盘的传输速度更加接近。
让我们来个简单的计算,假设寻道时间大约为10ms,传输速度为100MB/s。为了使得寻道时间仅为传输时间的1%,我们就需要设置块的大小为100MB。尽管很多应用的HDFS使用128MB的块,但默认的大小是64MB,这个参数将随着新一代硬盘速度的增长而增长。
  虽然大块有一定好处,但也不能太大。MR中的Map tasks一般一次只处理一个块,所以如果你的tasks太少了(少于你集群中的节点数),相对于设置较小块的Jobs来说,你的Jobs将会运行得比较慢。

转载于:https://www.cnblogs.com/spork/archive/2009/12/29/1634754.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值