1.分布式文件系統理解
使用低配置電腦配置成集群,存儲管理單台電腦不能處理的大型文件。
直觀理解三個臭皮匠,頂個諸葛亮。
很多磁盤加一起就可以裝超多電影。
類似於你出5毛,我出5毛,我們一起湊一塊。
2.hdfs優缺點
優點:
a.高容錯性:數據自動保存多個副本;通過增加副本的形式,提高容錯性。一個副本丟失以后,它可以自動恢復。
b.適合處理大數據:數據規模達到GB、TB甚至PB級數據;能夠處理百萬規模以上的文件數量,數量相當大;能夠處理10k節點規模。
c.可構建在廉價機器上,通過多副本機制,提高可靠性。
d.適合批處理:它是通過移動計算不是移動數據;它會把數據位置暴露給計算框架。
e.流式數據訪問:一次寫入,多次讀取,不能修改,只能追加,能保證數據的一致性。
缺點:
a.不適合低延時數據訪問,做不到毫秒級的數據存儲;
b.無法高效的對大量小文件進行存儲,存儲小量文件,會占用NameNode大量內存來存儲文件、目錄、塊信息。小文件存儲的尋道時間會超過讀取時間,違反了hdfs的設計目標。
c.不支持並發寫入:一個文件只能有一個寫,不允許多個線程同時寫入;僅支持數據追加,不支持文件的隨機修改。
3.hdfs的架構詳細剖析
數據以block塊的形式統一存儲管理,每個塊默認最多可存儲128M的文件,如果有一個文件大小為1kb,也是要占用一個block塊,但是實際磁盤空間還是1kb大小。
每個block塊的元數據大小大概為150字節。
a)hdfs集群包括NameNode、DataNode、SecondaryNameNode。
b)NameNode負責管理整個文件系統的元數據,以及每一個路徑(文件)所對應的的塊信息。
c)DataNode負責管理用戶的文件數據塊,每一個數據塊可以在多個datanode上存儲多個副本。
d)SecondaryNode用來監控hdfs狀態的輔助后台程序,每隔一段時間獲取hdfs元數據的快照。最主要作用是輔助NameNode管理元數據信息。