HDFS有什麼優缺點,為什麼會有這些優缺點,有什麼底層原因?

  • HDFS的優點

1.高容錯性

    1. 高容錯,通俗來說就是,允許其中的機器掛掉或者上邊的數據丟失,卻不影響文件的正常讀寫
    2. 原因:由於hdfs底層使用了多副本的技術,就是說一個文件保存了多份,其中一份丟失,還能通過其他的副本來正常讀寫,而且hdfs會自動補全副本數
HDFS有什麼優缺點,為什麼會有這些優缺點,有什麼底層原因?

多次備份同一數據


2.適合處理大數據

    1. 適合處理大數據,在這裡對於hdfs來說,就是適合存大量數據或比較大的文件
    2. 原因:hdfs聯合了多臺服務器來存儲數據,將所有服務器加起來為自己做存儲服務,服務器數量較多的情況下,hdfs的存儲可以說是無限多的


HDFS有什麼優缺點,為什麼會有這些優缺點,有什麼底層原因?

將很多服務器作為自己的存儲設備


3.可構建在廉價機器上

    1. 可構建在廉價的機器上,就是這個文件系統可以部署在便宜的容易壞的機器上
    2. 原因:這個也是因為,hdfs採用了多副本的技術來保存文件,即一個文件保存好多份,一個文件壞了,還有其他文件來做替補。


  • HDFS的缺點

1.不適合低延時數據訪問

    1. 不適合低延時數據訪問,就是說,不是很適合想要立馬從這個文件系統中查詢到數據
    2. 原因:hdfs採用多臺服務器共同存儲文件,它們之間信息傳遞是通過網絡,網絡傳輸數據是有延遲的,所以hdfs的訪問數據就有延遲,即不適合低延時數據訪問。

2.無法高效的對大量小文件進行存儲

    1. 原因:hdfs設計目標就是為了存儲較大文件的
    2. 再深層一點的原因,是因為hdfs採用了128M的塊來存儲文件,不論是否夠128M,文件都要佔用這128M,如果存大量小文件,就會浪費很多存儲空間
    3. 另外,hdfs中還有一個專門記錄文件位置的地方NameNode的內存上,每一個位置信息(不論文件的大小,位置信息記錄都一樣大)都要佔用內存,存儲大量小文件,就會佔用NameNode的內存,小文件佔用大量內存是很不划算的

3.不支持併發寫入、文件隨機修改

    1. 一個文件只能有一個來寫,不允許多個線程同時寫入
    2. 原因,按理說,分佈式的文件系統在硬件上是支持併發寫入的,這裡hdfs出於某種原因,規定不允許多線程同時寫入
    3. 不支持文件隨機修改
    4. 原因,hdfs主要是為了存儲文件,只是記錄了文件的位置,所以並不支持文件的隨機修改
  • 總結,hdfs的優缺點都是其系統設計導致的。


分享到:


相關文章: