HDFS的特點與使用場景

適合存儲超大文件

HDFS 支持 GB 級別甚至 TB 級別的文件,每個文件大小可以大於集群中任意一個節點的磁盤容量,文件的所有數據塊存在不同節點中,在進行大文件讀寫時採用並行的方式提高數據的吞吐量。


HDFS 不適合存儲大量的小文件,這裡的小文件指小於塊大小的文件。因為 NameNode 將文件系統的元數據信息存在內存當中,所以 HDFS 所能存儲的文件總數受到 NameNode 內存容量的限制。
下面通過舉例來計算同等容量的單個大文件和多個小文件所佔的文件塊的個數。
假設 HDFS 中塊的大小為 64MB,備份數量為 3,—般情況下,一條元數據記錄佔用 200B 的內存。那麼,對於 1GB 的大文件,將佔用 1GB/64MB x 3 個文件塊;對於 1024 個 1MB 的小文件,則佔用 1024 x3 個文件塊。可以看到,存儲同等大小的文件,單個文件越小,所需的元數據信息越大,佔用的內存越大,因此 HDFS 適合存儲超大文件。

適用於流式的數據訪問

HDFS 適用於批量數據的處理,不適用於交互式處理。它設計的目標是通過流式的數據訪問保證高吞吐量,不適合對低延遲用戶響應的應用。可以選擇 HBase 滿足低延遲用戶的訪問需求。

支持簡單的一致性模型

HDFS 中的文件支持一次寫入、多次讀取,寫入操作是以追加的方式添加在文件末尾,不支持多個寫入者的操作,也不支持對文件的任意位置進行修改。


計算向數據靠攏

在 Hadoop 系統中,對數據進行計算時,採用將計算向數據靠攏的方式,即選擇最近的數據進行計算,減少數據在網絡中的傳輸延遲。


分享到:


相關文章: