HDFS读写原理
Hadoop 是什么 Hadoop 是一个开源的大数据框架同时也是一个分布式计算的解决方案。Hadoop = HDFS (分布式文件系统)+MapReduce(分布式计算) HDFS HDFS 概念 数据块 NameNode DataNode 数据块: 数据块是一个抽象的块,而不是整个文件。默认大小是64Mb,一般设置为128Mb,备份x3 数据块的大小可以随着磁盘传输速率的提升而得到增加。 HDFS的块比磁盘的大,主要是减少寻址时间在整个文件传输时间中的占比。比如为了让磁盘寻址时间只占到整个文件传输时间的1%,而寻址时间为10ms,磁盘的IO传输速率为100Mb/s,那么一个块的大小要大于100Mb才能达到这个要求。随着以后磁盘的传输速率越来越高,块的大小也会越来越大的。 【但是块的大小也不会很大,因为MapReduce中的map任务一次只处理一个块的数据,如果map任务过少(少于集群的节点数量),作业的运行效率也会比较慢】 对数据块进行抽象的好处: 一个文件的大小可以大于集群网络中任一个磁盘的大小。因为可以对文件进行分块存储,所以在一种极端情况下,一个集群只存放了一个文件,该文件占满了集群中的所有磁盘。 使用抽象块而不是整个文件作为存储单元,可以简化存储子系统的设计。首先块的大小是固定的,所以一个磁盘能够存储多少个块很容易就能够计算出来。另外也消除了对于元数据的顾虑