我需要了解以下情況如何從hdfs獲取特定數據?
情景一些解釋: - > 假設有在1000PB的文件在世界每個人的完整記錄,我們轉移該文件到HDFS(假設Reflection_factor = 9 bl_size = 128MB),並且該文件分成'n'個塊。
假設客戶要求我們用一些獨特的約束(Key)來搜索特定的人。讓我們假設這個人的數據在第n個塊中。
我的問題是MapReduce函數在這種情況下如何工作?它是直接讀取第n個塊還是將第一個節點讀取到第n個節點?
我需要了解以下情況如何從hdfs獲取特定數據?
情景一些解釋: - > 假設有在1000PB的文件在世界每個人的完整記錄,我們轉移該文件到HDFS(假設Reflection_factor = 9 bl_size = 128MB),並且該文件分成'n'個塊。
假設客戶要求我們用一些獨特的約束(Key)來搜索特定的人。讓我們假設這個人的數據在第n個塊中。
我的問題是MapReduce函數在這種情況下如何工作?它是直接讀取第n個塊還是將第一個節點讀取到第n個節點?
這個用例是HBase的設計目的。
HDFS
好順序訪問,而HBase
有利於
因此,通過@WinnieNicklaus的建議,你應該看看如果您正在尋找隨機訪問,將數據加載到HBase中。
HDFS如何知道哪個片段有數據?你將不得不創建一個M/R作業,將1000PB分成1000份作業,然後執行它們*所有*和一份工作(你不知道前面哪個!)將爲匹配發出一行。 –