2014-01-06 152 views
0

我需要了解以下情況如何從hdfs獲取特定數據?

情景一些解釋: - > 假設有在1000PB的文件在世界每個人的完整記錄,我們轉移該文件到HDFS(假設Reflection_factor = 9 bl_size = 128MB),並且該文件分成'n'個塊。

假設客戶要求我們用一些獨特的約束(Key)來搜索特定的人。讓我們假設這個人的數據在第n個塊中。

我的問題是MapReduce函數在這種情況下如何工作?它是直接讀取第n個塊還是將第一個節點讀取到第n個節點?

+0

HDFS如何知道哪個片段有數據?你將不得不創建一個M/R作業,將1000PB分成1000份作業,然後執行它們*所有*和一份工作(你不知道前面哪個!)將爲匹配發出一行。 –

回答

1

這個用例是HBase的設計目的。

2

HDFS好順序訪問,而HBase有利於

  • 單一的隨機選擇
  • 範圍內關鍵
  • 可變模式掃描

因此,通過@WinnieNicklaus的建議,你應該看看如果您正在尋找隨機訪問,將數據加載到HBase中。