HDFS分布式文件系統設計目標包括以下這些:
硬件錯誤:硬件錯誤是常態而不是異常。HDFS可能由成百上千的服務器構成,每個服務器上存儲著文件系統的部分數據。我們面對的現實是構成系統的組件數目是巨大的,而且任一組件都有可能失效,這意味著總是有一部分HDFS的組件是不工作的。因此錯誤檢測和快速、自動地恢復是HDFS最核心的架構目標。
流式的訪問數據:HDFS建立在這樣一個思想上,即一次寫入、多次讀取模式是最高效的。這意味著一個數據集一旦由數據源生成,就會被復制分發到不同的存儲節點中,然后響應各種各樣的數據分析任務請求。在多數情況下,分析任務都會涉及數據集中的大部分數據,也就是說,對HDFS來說,請求讀取整個數據集要比讀取一條記錄更加高效。
處理超大文件:這里的超大文件通常是指百MB、數百TB大小的文件。目前在實際應用中,HDFS已經能用來存儲管理PB級的數據了。所以,HDFS被調整成支持大文件。它應該提供很高的聚合數據帶寬,在一個集群中支持成百上千個節點,支持上億級別的文件。
簡單一致性模型:大部分的HDFS程序對文件操作需要的是一次寫入多次讀取的操作模式。一個文件一旦創建、寫入、關閉,就不需要修改了。這個假定簡單化了數據一致性的問題并使高吞吐量的數據訪問變得可能。
移動計算比移動數據更經濟:在靠近計算數據所存儲的位置來進行計算是最理想的狀態,尤其是在數據集特別巨大的時候。這樣消除了網絡的擁堵,提高了系統的整體吞吐量。一個假定就是遷移計算到離數據更近的位置比將數據移動到程序運行更近的位置要更好。HDFS提供了接口,來讓程序自己移動到離數據存儲更近的位置。
異構軟硬件平臺間的可移植性:HDFS被設計成可以簡便地實現平臺間的遷移,這將推動需要大數據集的應用更廣泛地采用HDFS作為平臺。