HDFS设置BLOCK的目的

Posted 辉常努腻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS设置BLOCK的目的相关的知识,希望对你有一定的参考价值。

HDFS设置BLOCK的目的
在HDFS里面,data node上的块大小默认是64MB(或者是128MB或256MB)

问题: 为什么64MB(或128MB或256MB)是最优选择?
为什么不能远少于64MB(或128MB或256MB) (普通文件系统的数据块大小一般为4KB)减少硬盘寻道时间(disk seek time)

1.减少硬盘寻道时间
HDFS设计前提是支持大容量的流式数据操作,所以即使是一般的数据读写操作,涉及到的数据量都是比较大的。假如数据块设置过少,那需要读取的数据块就比较多,

由于数据块在硬盘上非连续存储,普通硬盘因为需要移动磁头,所以随机寻址较慢,读越多的数据块就增大了总的硬盘寻道时间。当硬盘寻道时间比io时间还要长的多时,那么硬盘寻道时间就成了系统的一个瓶颈。合适的块大小有助于减少硬盘寻道时间,提高系统吞吐量。

2.减少Namenode内存消耗

对于HDFS,他只有一个Namenode节点,他的内存相对于Datanode来说,是极其有限的。然而,namenode需要在其内存FSImage文件中中记录在Datanode中的数据块信息,假如数据块大小设置过少,而需要维护的数据块信息就会过多,那Namenode的内存可能就会伤不起了。

以上是关于HDFS设置BLOCK的目的的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop面试题总结——HDFS

Hdfs block数据块大小的设置规则

HDFS概述————Block块大小设置

Hadoop Block

Hadoop面试题总结——HDFS

HDFS存储与架构