我需要了解以下情况如何从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份作业,然后执行它们*所有*和一份工作(你不知道前面哪个!)将为匹配发出一行。 –