HDFS的優缺點
阿新 • • 發佈:2022-03-02
HDFS是一個分散式檔案儲存系統,前身來自於Google釋出的大資料三駕馬車之一GFS (Google Fiel System)。
HDFS的優點:
1、高容錯
hdfs具有很高的容錯性,資料自動儲存為多個副本,預設為三副本機制,還能夠通過自己自定義副本數來提高容錯性。
當某個節點的副本丟失後,可以通過其他的備份副本進行恢復。
2、塊儲存
hdfs中的檔案是以塊的形式進行儲存的,hadoop2.x後的版本預設為128m為一塊。
128m為一塊是由最佳傳輸損耗原理來得到的數字,當一個檔案大小為128m時此時傳輸讀取的效率是最高的。
最佳傳輸損耗原理:
當讀取一個檔案的時候,所需要的時間分為兩部分:定址時間、傳輸時間。根據目前的技術水平,機械磁碟的定址時間普遍在
10ms左右,而傳輸時間取決於要讀取檔案的大小,讀取的檔案越大,所需要的傳輸時間越長,那麼,一次讀取多少檔案效率最高呢?根據經驗定址時間佔傳輸時間1% 的時候,是傳輸一個檔案效率最高的。
3、適合處理大規模資料集
資料規模:能夠處理資料規模達到 GB、TB 甚至 PB級別資料。
檔案規模:能夠處理百萬規模以上的檔案數量。
4、高可靠性
由於具有高容錯性,所以叢集可以部署在廉價的機器上,並且保證資料不會丟失。
HDFS的缺點:
1、不適合低延遲的資料訪問
訪問hdfs的資料是相對較慢的,無法做到像 mysql 那樣的毫秒級別的讀寫資料。
2、不適合儲存大量的小檔案
所有儲存在 hdfs上的檔案都需要由 NameNode來管理元資料資訊,每個 block塊的元資料資訊都會佔用 150位元組的記憶體空間,會增大 NameNode的負擔。
例如同樣儲存10M的內容,採取副本數為3的備份機制,這10M放在一個檔案中,所用到的元資料佔用的記憶體為150*3=450位元組,如果把這10M放到10個檔案中,則佔用150*10*3=4500位元組,很明顯,儲存相同的內容,第二種方式佔用的記憶體更多。
3、不支援併發寫入以及隨即修改
一個檔案只能有一個使用者寫,不允許多個執行緒同時寫入
僅支援資料的追加,不支援檔案的隨即修改