【发布时间】:2013-06-05 23:20:24
【问题描述】:
我想知道哪种配置会更快。好吧,我可以选择将几个文本文件作为 Map Reduce 的输入来处理,也可以选择从 HBase 获取输入。
出于我的目的,我需要阅读所有可用数据。
谢谢, 亚当
【问题讨论】:
我想知道哪种配置会更快。好吧,我可以选择将几个文本文件作为 Map Reduce 的输入来处理,也可以选择从 HBase 获取输入。
出于我的目的,我需要阅读所有可用数据。
谢谢, 亚当
【问题讨论】:
如果您的文本文件存储在 HDFS 中,那么从那里读取数据将比 HBase 更快。这背后的原因是,当您从 HBase 读取数据时,它比 HDFS 做的更多,例如读取 KeyValues、返回最新行或指定的时间戳等。另一方面,当您从 HDFS 读取数据时,这只是一个问题打开该文件的阅读器并开始按顺序阅读。没有从一个地方跳转到另一个地方会导致读取延迟(这种跳转是允许 HBase 为您提供随机读/写访问的东西)。这就是 HBase 在这种处理环境中比 HDFS 慢几倍的原因。
但这在批处理上下文中很有效(例如,作为 MapReduce 源或接收器)。当您需要对大型数据集中的少量数据进行低延迟访问时,HBase 是首选。
希望这能回答问题。
【讨论】: