- HDFS的優點
1.高容錯性
- 高容錯,通俗來說就是,允許其中的機器掛掉或者上邊的數據丟失,卻不影響文件的正常讀寫
- 原因:由於hdfs底層使用了多副本的技術,就是說一個文件保存了多份,其中一份丟失,還能通過其他的副本來正常讀寫,而且hdfs會自動補全副本數
2.適合處理大數據
- 適合處理大數據,在這裡對於hdfs來說,就是適合存大量數據或比較大的文件
- 原因:hdfs聯合了多臺服務器來存儲數據,將所有服務器加起來為自己做存儲服務,服務器數量較多的情況下,hdfs的存儲可以說是無限多的
3.可構建在廉價機器上
- 可構建在廉價的機器上,就是這個文件系統可以部署在便宜的容易壞的機器上
- 原因:這個也是因為,hdfs採用了多副本的技術來保存文件,即一個文件保存好多份,一個文件壞了,還有其他文件來做替補。
- HDFS的缺點
1.不適合低延時數據訪問
- 不適合低延時數據訪問,就是說,不是很適合想要立馬從這個文件系統中查詢到數據
- 原因:hdfs採用多臺服務器共同存儲文件,它們之間信息傳遞是通過網絡,網絡傳輸數據是有延遲的,所以hdfs的訪問數據就有延遲,即不適合低延時數據訪問。
2.無法高效的對大量小文件進行存儲
- 原因:hdfs設計目標就是為了存儲較大文件的
- 再深層一點的原因,是因為hdfs採用了128M的塊來存儲文件,不論是否夠128M,文件都要佔用這128M,如果存大量小文件,就會浪費很多存儲空間
- 另外,hdfs中還有一個專門記錄文件位置的地方NameNode的內存上,每一個位置信息(不論文件的大小,位置信息記錄都一樣大)都要佔用內存,存儲大量小文件,就會佔用NameNode的內存,小文件佔用大量內存是很不划算的
3.不支持併發寫入、文件隨機修改
- 一個文件只能有一個來寫,不允許多個線程同時寫入
- 原因,按理說,分佈式的文件系統在硬件上是支持併發寫入的,這裡hdfs出於某種原因,規定不允許多線程同時寫入
- 不支持文件隨機修改
- 原因,hdfs主要是為了存儲文件,只是記錄了文件的位置,所以並不支持文件的隨機修改
- 總結,hdfs的優缺點都是其系統設計導致的。
閱讀更多 嘿嘿哎四個窩窩頭 的文章