分布式文件系统(HDFS)与linux系统文件系统关系

最近在学习hadoop时关于分布式文件系统(hdfs)中的块定义有点模糊,以及它内部与操做系统中物理磁盘块的关系,它们又是怎么创建关系?研究了一番,在这供你们参考,若有说的不对或是不全的地方,欢迎你们评论!html

各自区别:
这里写图片描述node

每一个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位。而构建于单个磁盘之上的文件系统(linux文件系统)经过磁盘块来管理该文件系统中的块,该文件系统中的文件大小是磁盘块的整数倍。磁盘块的大小通常为512字节,其读写的最小单位是磁盘块的最小单位.文件占用的块由inode进行管理,记录该文件存放数据的N个block的物理地址,具体linux下文件系统的构成由下面连接详细介绍:http://www.cnblogs.com/yyyyy5101/articles/1901842.html linux

HDFS一样也有块的概念,HDFS文件系统中的块指的是linux文件,分布式文件就是有多个linux文件(块)组成。其最小块单位就是一个Linux文件的大小,默认为64MB,其分片成的linux文件的文件名有HDFS的namenode管理,该节点还管理了linux文件对应datanode节点的映射关系。web

假设有一个1G的大文件,在linux文件系统上就是一个文件,由1G/512b的block组成;在HDFS上须要1024MB/64MB=16块,即16个linux文件组成,因此至关于一个普通1G的文件分红了16个小文件,在HDFS上的namenode会记录1G文件名对应16个文件名映射关系和16个文件名在对应datanote节点上的映射关系(备份除外)。datanote节点上的16个小文件就是linux文件,在各自datanote节点上的inode里记录了16个文件对应物理磁盘的映射关系。简而言之:1G的分布式文件转换成16个linux文件,HDFS就是实现了拆分文件功能,固然因为考虑单点故障缘由,它把每一个文件复制了3份(默认),无论哪一个节点出故障能够合成完整的一个1G文件。分布式