hbase或文本文件作为Map Reduce的输入



我想知道哪种配置会更快。我可以选择将Map Reduce的几个文本文件作为输入来处理,也可以选择从HBase获取输入。

为了我的目的,我需要阅读所有可用的数据。

谢谢,亚当

如果您的文本文件存储在HDFS中,那么从那里读取数据将比HBase更快。这背后的原因是,当你从HBase读取数据时,它比HDFS做更多的事情,比如读取KeyValues,返回最近的行或指定的时间戳等。另一方面,当您从HDFS读取数据时,只需在该文件上打开读取器并开始顺序读取即可。没有从一个地方跳到另一个地方导致读取延迟(这种跳转允许HBase提供随机读/写访问)。这就是HBase在这个处理上下文中比HDFS慢几倍的原因。

但这在批处理上下文中适用(例如,作为MapReduce源或接收器)。当您需要低延迟地访问大型数据集中的少量数据时,HBase是更好的选择。

希望这能回答问题。

最新更新