HDFS中的「串流資料存取」是什麼意思?

HDFS中的「串流資料存取」是什麼意思?

根據 HDFS 架構頁面,HDFS 是為「串流資料存取」而設計的。我不確定這到底意味著什麼,但我猜這意味著像搜尋這樣的操作要么被禁用,要么性能不佳。這是正確的嗎?

我有興趣使用 HDFS 儲存需要串流傳輸到瀏覽器客戶端的音訊/視訊檔案。大多數串流將從頭到尾進行,但有些串流可能會有大量搜尋。

也許還有另一個檔案系統可以做得更好?

答案1

串流媒體只是意味著它可以在傳輸資料時為您提供高於特定閾值的恆定位元率,而不是讓資料以突發或波浪的形式傳入。

如果 HDFS 被設計用於串流傳輸,它可能仍然支援查找,但需要一點開銷來快取恆定串流的資料。

當然,根據系統和網路負載,您的搜尋可能需要更長的時間。

答案2

HDFS 將資料儲存在大塊中—例如 64 MB。這個想法是,您希望資料按順序排列在硬碟上,從而減少硬碟讀取資料所需的查找次數。

此外,HDFS 是一個使用者空間檔案系統,因此有一個中央名稱節點,其中包含一個記憶體中目錄,其中所有區塊(及其副本)都儲存在叢集中。文件預計會很大(例如 1 GB 或更大),並且被分成幾個區塊。為了讀取文件,程式碼向名稱節點詢問區塊列表,然後順序讀取區塊。

透過保持驅動器可以支援這些大數據塊的最大 I/O 速率,資料從硬碟「串流」。

答案3

對於來自的串流數據Hadoop:權威指南,第三版:

HDFS 的建構理念是:最有效的資料處理模式是一次寫入、多次讀取的模式。資料集通常是從來源產生或複製的,然後隨著時間的推移對該資料集執行各種分析。每次分析都將涉及資料集的很大一部分(如果不是全部),因此讀取整個資料集的時間比讀取第一個記錄的延遲更重要。

相關內容