HDFS与LINUX文件系统的区别

HDFS与LINUX文件系统的区别_第1张图片
20170831202928457.png

每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位。而构建于单个磁盘之上的文件系统(linux文件系统)通过磁盘块来管理该文件系统中的块,该文件系统中的文件大小是磁盘块的整数倍。磁盘块的大小一般为512字节,其读写的最小单位是磁盘块的最小单位.文件占用的块由inode进行管理,记录该文件存放数据的N个block的物理地址。

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

假设有一个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文件。

你可能感兴趣的:(HDFS与LINUX文件系统的区别)