Filesystems
HDFS 中的“流式數據訪問”是什麼意思?
根據 HDFS 架構頁面,HDFS 是為“流式數據訪問”而設計的。我不確定這到底是什麼意思,但我猜這意味著像 seek 這樣的操作要麼被禁用,要麼性能欠佳。這是正確的嗎?
我對使用 HDFS 儲存需要流式傳輸到瀏覽器客戶端的音頻/影片文件感興趣。大多數流將從開始到結束,但有些流可能會進行大量搜尋。
也許還有另一個文件系統可以做得更好?
流式傳輸只是意味著它可以在傳輸數據時為您提供高於某個門檻值的恆定比特率,而不是讓數據以突發或波的形式進入。
如果 HDFS 用於流式傳輸,它可能仍然支持查找,但需要一些成本來記憶體恆定流的數據。
當然,根據系統和網路負載,您的搜尋可能需要更長的時間。
HDFS 將數據儲存在大塊中——比如 64 MB。這個想法是您希望數據按順序排列在硬碟驅動器上,從而減少硬碟驅動器讀取數據所需執行的尋軌次數。
此外,HDFS 是一個使用者空間文件系統,因此有一個中央名稱節點,其中包含一個記憶體目錄,其中所有塊(及其副本)都儲存在整個集群中。文件預計會很大(比如 1 GB 或更多),並被分成幾個塊。為了讀取文件,程式碼向名稱節點詢問塊列表,然後按順序讀取塊。
通過保持驅動器可以為這些大數據塊維持的最大 I/O 速率,數據從硬碟驅動器“流式傳輸”。