2014-01-06 150 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中。