当前位置: 首页 > 分布式 > 正文

为什么在Hadoop(HDFS)中块设置的很大?

相对于普通磁盘的块(4kb)来说HDFS的块要更大一些256M甚至更大(默认64M),如此设计的目的是为了减少在寻道上的开销。 如果把HDFS块设置的足够大,那么从磁盘传输数据的时间将明显大于检索块头部信息的时间,因此HDFS中大文件传输的时间由多个块在磁盘上的传输速率来决定。

一种快速的计算方法为: 如果寻道时间在10毫秒左右,传输速率将是100MB/s,如果让寻道时间占1%的传输时间,我们需要设置块大小在100MB左右。HDFS默认是64MB,尽管许多HDFS平台默认使用128MB的块。随着新一代磁盘驱动器的发展,这个传输速度将不断打破,当然这个论点不会走得太远。

MapReduce中的Map任务在同一时间通常只在一个块上进行操作,所以如果实际中你的任务太少(少于集群中的节点数目),集群中的节点并没有得到充分利用上,该任务并没有获得应有的运行速度。

本文固定链接: https://sudops.com/why-hdfs-block-so-big.html | 运维速度

该日志由 u2 于2014年02月15日发表在 分布式 分类下,
原创文章转载请注明: 为什么在Hadoop(HDFS)中块设置的很大? | 运维速度
关键字: , ,

报歉!评论已关闭.