大數據分佈式文件系統,HDFS入門與設計理念

隨著大數據時代的來臨,數據集的量也呈現出爆發式的增長。普通的單臺物理計算機根本無法存儲如此海量的數據,因此就需要將數據分割然後存儲在多臺服務器上,這種系統就稱之為分佈式文件系統。

大數據分佈式文件系統,HDFS入門與設計理念

而常用的大數據工具Hadoop中就自帶這麼一個分佈式文件系統,叫做HDFS,今天小鳥來為小夥伴們做一個HDFS的入門簡介。

HDFS被設計於運行在大型硬件集群之上,主要是為了解決海量數據的存儲和讀取問題。其特點如下:

硬件廉價

HDFS集群使用的硬件都是非常廉價的,但是正是由於廉價的硬件。其節點可能會經常發生故障,但是節點的數量非常多,因此在某個節點發生故障的時候,用戶不太容易察覺。總的來說相較於昂貴並且故障率低的硬件而言,這種廉價的集群方式性價比會高很多。

大數據分佈式文件系統,HDFS入門與設計理念

海量數據

HDFS中存儲的文件通常都是MB級別的,通常一個文件在幾百MB左右。但是由於文件數量過多,通常都會達到TB甚至PB級別,單個硬件是無法達到這種級別的。

大數據分佈式文件系統,HDFS入門與設計理念

小文件不宜太多

雖然HDFS的主要用途之一是為了存儲海量的數據,但是由於其分佈式的特點,每個文件、目錄和數據塊都有元數據,這些元數據存儲著他們在HDFS中的相關信息。

大數據分佈式文件系統,HDFS入門與設計理念

每個元數據大約佔用150字節,因此可以通過這個指標來衡量所有文件的元數據所佔用的內存。小文件太多將會極大的降低存儲能力。但是小於一個數據塊大小的文件不會佔用一整個數據塊的空間,關於數據塊的概念之後會做詳解。

只能單用戶寫入

HDFS中存儲的數據多數情況下都是日誌等文件,通常是被拿來做分析和統計的,因此被設計為“一次寫入,多次讀取”的模式。在分佈式系統中,要實現多人同時寫的代價過於沉重,因此只能由一個用戶來執行寫操作。

大數據分佈式文件系統,HDFS入門與設計理念

不支持修改

由於HDFS是分佈式文件系統,因此其寫入和修改付出的代價是相等的。並且HDFS本身也是為了存儲海量的輸出穩定的數據,這類數據通常不會修改,所以HDFS也就沒有支持這一操作。

大數據分佈式文件系統,HDFS入門與設計理念

響應延遲高

HDFS的數據會從各個節點讀取,因此具有極高的吞吐量。但是為了做到這點,每次讀數據都需要初始化,因此很多時間被耽誤在啟動上了,所以延遲高。

大數據分佈式文件系統,HDFS入門與設計理念

流式數據訪問

由於HDFS中的數據幾乎都是會被多次讀取的,因此將數據設計為流的方式讀取是最為高效的。雖然這樣會降低讀取第一條數據的速度,但是使用者需要的是讀取整個數據集。

大數據分佈式文件系統,HDFS入門與設計理念

想學習更多大數據知識,請記得關注小鳥。


分享到:


相關文章: