近些年,由於智能手機的迅速普及推動移動互聯網技術的蓬勃發展,全球數據呈現爆髮式的增長。2018年5月企鵝號的統計結果:互聯網每天新增的數據量達2.5*10^18位元組,而全球90%的數據都是在過去的兩年間創造出來的。隨著5G技術的商用,未來連接萬物的物聯網設備必將帶來更大量級的數據。大膽預期,我們即將 ...
近些年,由於智能手機的迅速普及推動移動互聯網技術的蓬勃發展,全球數據呈現爆發式的增長。2018年5月企鵝號的統計結果:互聯網每天新增的數據量達2.5*10^18字節,而全球90%的數據都是在過去的兩年間創造出來的。隨著5G技術的商用,未來連接萬物的物聯網設備必將帶來更大量級的數據。大膽預期,我們即將走進數據大爆炸的時代。誠如吳軍博士所說:誰懂得數據的重要性,誰會在工作中善用數據,就更有可能獲得成功。
從人類活動開始,數據一直不斷在產生,區別僅在於數據的存儲方式是否取得了進步。從古老的壁畫、紙張到現代的硬盤,存儲能力跨數量級地增長。盡管如此,在大數據時代,單純通過增加硬盤個數來擴展計算機文件系統存儲容量的方式,在容量大小、容量增長速度、數據備份、數據安全等方面的表現都差強人意。分布式文件存儲系統應運而生。
HDFS主要解決傳統方式難以解決或者成本太高的問題,它被設計成適合運行在通用硬件上的分布式文件系統,具有高容錯性,適合部署在廉價的機器上運行,能提供高吞吐量的數據訪問。
HDFS可能由成百上千的服務器構成,錯誤監測、快速自恢復是其核心架構目標。HDFS上的典型文件大小一般在GB至TB量級,適用於一次寫入多次讀取的場景。相較於數據訪問的低延時,HDFS在高吞吐量的表現更優異。
HDFS採用Java語言編寫,典型架構如下圖示,使用master/slave架構,一個HDFS集群由一個NameNode和一定數目的DataNodes組成。NameNode是一個中心服務器,負責管理文件系統的名稱空間(namespace)以及客戶端對文件的訪問。集群中的DataNode一般