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