設計前提與目標
HDFS的設計前提與目標如下。
(1)硬件錯誤是常態而不是異常。HDFS被設計為運行在普通硬件上,所以硬件故障是很正常的。HDFS可能由成百上千的服務器構成,每個服務器上都存儲著文件系統的部分數據,而HDFS的每個組件隨時都有可能出現故障。因此,錯誤檢測并快速自動恢復是HDFS的最核心設計目標。
(2)流式數據訪問。運行在HDFS上的應用主要是以流式讀為主,做批量處理;更注重數據訪問的髙吞吐量。
(3)超大規模數據集。HDFS的一般企業級的文件大小可能都在TB級甚至PB級,支持大文件存儲,而且提供整體上髙的數據傳輸帶寬,一個單一的HDFS實例應該能支撐數以千萬計的文件,并且能在一個集群里擴展到數百個節點。
(4)簡單一致性模型。HDFS的應用程序一般對文件實行一次性寫、多次讀的訪問模式。文件一旦創建、寫入和關閉之后就不需要再更改了。這樣就簡化了數據一致性問題,髙吞吐量的數據訪問才成為可能。
(5)移動計算比移動數據更簡單。對于大文件來說,移動數據比移動計算的代價要高。操作海量數據時效果越加明顯,這樣可以提高系統的吞吐量和減少網絡的擁塞。
(6)異構軟硬件平臺間的可移植性。這種特性便于HDFS作為大規模數據應用平臺的推廣。