HDFS基于操做系统的文件系统;node
假设有一个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文件
linux
散列表,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的作法。顾名思义,该数据结构可以理解为一个线性表,但是当中的元素不是紧密排列的,而是可能存在空隙。算法
散列表(Hash table,也叫哈希表),是依据关键码值(Key value)而直接进行訪问的数据结构。也就是说,它经过把关键码值映射到表中一个位置来訪问记录,以加快查找的速度。这个映射函数叫作散列函数,存放记录的数组叫作散列表。数组
著名的hash算法,MD5 和 SHA-1 可以说是眼下应用最普遍的Hash算法,而它们都是以 MD4 为基础设计的。安全
(1) MD4数据结构
MD4(RFC 1320)是 MIT 的 Ronald L. Rivest 在 1990 年设计的,MD 是 Message Digest 的缩写。它适用在32位字长的处理器上用快速软件实现--它是基于 32 位操做数的位操做来实现的。分布式
(2) MD5函数
MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本号。它对输入仍以512位分组,其输出是4个32位字的级联,与 MD4 一样。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好spa
(3) SHA-1 及其它操作系统
SHA1是由NIST NSA设计为同DSA一块儿使用的,它对长度小于264的输入,产生长度为160bit的散列值,所以抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4一样原理,并且模仿了该算法