分布式文件系统(HDFS)与 linux系统文件系统 对比
初次接觸分布式文件系統(tǒng),有很多迷惑。通過參考網(wǎng)絡文章,這里進行對比一下Hadoop 分布式文件系統(tǒng)(HDFS)與 傳統(tǒng)文件系統(tǒng)之間的關系:
| ? | Linux 文件系統(tǒng) | 分布式文件系統(tǒng) |
| 塊 | 塊對應物理磁盤的block | 塊對應linux 文件 |
| 讀寫單位 | 一個磁盤塊的大小是最小單位 | Linux 系統(tǒng)文件是最小讀寫單位(默認64mb) |
| 單個文件 | 多個數(shù)據(jù)塊組成 | 多個文件組成 |
| 文件元數(shù)據(jù)信息 | inode 記錄文件存放的數(shù)據(jù)區(qū)的block指針 | namenode 記錄linux 數(shù)據(jù)文件所在的datanode |
?
?
?
?
?
? ? ? ?
? ? ? ?每個磁盤都有默認的數(shù)據(jù)塊大小,這是磁盤進行數(shù)據(jù)讀/寫的最小單位。而構建于單個磁盤之上的文件系統(tǒng)(linux文件系統(tǒng))通過磁盤塊來管理該文件系統(tǒng)中的塊,該文件系統(tǒng)中的文件大小是磁盤塊的整數(shù)倍。磁盤塊的大小一般為512字節(jié),其讀寫的最小單位是磁盤塊的最小單位.文件占用的塊由inode進行管理,記錄該文件存放數(shù)據(jù)的N個block的物理地址,具體linux下文件系統(tǒng)的構成請參考我另一篇文章。
? ? ? ?HDFS同樣也有塊的概念,HDFS文件系統(tǒng)中的塊指的是linux文件,分布式文件就是有多個linux文件(塊)組成。其最小塊單位就是一個Linux文件的大小,默認為64MB,其分片成的linux文件的文件名有HDFS的namenode管理,該節(jié)點還管理了linux文件對應datanode節(jié)點的映射關系。假設有一個1G的大文件,在linux文件系統(tǒng)上就是一個文件,由1G/512b的block組成;在HDFS上需要1024MB/64MB=16塊,即16個linux文件組成,所以相當于一個普通1G的文件分成了16個小文件,在HDFS上的namenode會記錄1G文件名對應16個文件名映射關系和16個文件名在對應datanote節(jié)點上的映射關系(備份除外)。datanote節(jié)點上的16個小文件就是linux文件,在各自datanote節(jié)點上的inode里記錄了16個文件對應物理磁盤的映射關系。簡而言之:1G的分布式文件轉換成16個linux文件,HDFS就是實現(xiàn)了拆分文件功能,當然由于考慮單點故障原因,它把每個文件復制了3份(默認), 不管哪個節(jié)點出故障可以合成完整的一個1G文件。
保持更新,轉載請注明出處。如果對你有所幫助請點擊右下角的推薦進行支持。
參考鏈接:
http://www.cnblogs.com/yyyyy5101/articles/1901842.html?
https://blog.csdn.net/qq_32041579/article/details/77752733
?
轉載于:https://www.cnblogs.com/xuyaowen/p/linuxfs_hdfs.html
總結
以上是生活随笔為你收集整理的分布式文件系统(HDFS)与 linux系统文件系统 对比的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php递归操作目录 递归对参数转义
- 下一篇: 孩子教育