1. 程式人生 > 其它 >HDFS的優缺點

HDFS的優缺點

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、不支援併發寫入以及隨即修改

一個檔案只能有一個使用者寫,不允許多個執行緒同時寫入

僅支援資料的追加,不支援檔案的隨即修改