HDFS全称为Hadoop Distributed File System,是Hadoop框架的核心组成部分,是存储大数据的框架,同时MapReduce为数据计算提供了解决方案。同时我在疑问为什么HDFS会成为Hadoop的核心,而不是其他的,为什么HDFS会适用于大数据的存储,这是由于什么决定了。

首先,HDFS是使用流数据访问,我一直不是很明白为什么流式的访问那么快。和流式数据访问相对应的是随机数据访问。随机数据访问需要寻址,对于访问单个数据来说,它的延迟较小

流式读取的话,最小化了硬盘的寻址时间,只要寻址一次,就可以一直读取。对于HDFS来说,每次处理的话都是整个数据或者大部分的数据,整个数据集很大,需要都读取,虽然随机数据访问,单个的时间很短,但是如果想把整个数据集读取出来,整个的延迟非常长,为了让整体的读取的延迟减小,流式读取非常的适合。

其次,HDFS默认是64M,这个和硬盘里面确定最小寻址地址一样,设置64M这么大的数字是为了减少寻址时间,当一个client 想读取某个数据块的时候,向namenode询问地址,namenode将网络结构中离着它最近的地址发给它,它直接连接,读取数据,以流的方式,这个和网络的传输效率有直接的关系。

最后,HDFS和传统的数据流的方式有何不同呢?

POSIX Portable Operating System Interface 可移植操作系统接口。官方文档上是这么说的,HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。为了提高数据的吞吐量,在一些关键方面对POSIX的语义做了一些修改。因为POSIX标准设置的很多硬性约束对HDFS应用系统不是必需的。

数据的吞吐量是什么?吞吐量是指对网络,设备,端口,虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节来计量)