最近,我看到一个博客,作者提到了 Hbase 和 Hive 的集成。这是否可能,如果可以,使用两者有什么优势(在性能和可扩展性方面)。如果我错了,请纠正我。
2 回答
我认为这将是可能的,但不是微不足道的——也许 CDH3 final 在它出现时将包括集成。
优点:通过 hbase 进行 Hive 查询。想想连接和对 HBase 数据进行聚合和简单操作的简单方法。
为什么不只使用 Hive 而不用 HBase 呢?HBase 为您提供了一个可扩展的存储基础架构,可让数据保持在线状态。StumbleUpon 将 HBase 用于他们的实时网站。Hive 不是实时查询引擎,因此它的数据存储不能用于类似目的。Hive over HBase 为您提供了两全其美的好处。
目前有一个补丁可以在 HBase 和 Hive 之间加载数据。你可以在这里找到它:
http://wiki.apache.org/hadoop/Hive/HBaseIntegration
实现开销看起来相当高。
对 HBase 表运行扫描并保存到外部文件然后将其导入 Hive 进行数据操作可能更容易。(这也很麻烦,但是如果您定期执行此操作,则可以编写脚本。)这是我目前正在研究的解决方案。我会让你知道情况如何。
至于为什么你会选择 HBase 而不是 Hive,它们并不是真正可以互换的。HBase 是一种建立在 Hadoop 之上的高度可扩展的数据存储,几乎不支持数据分析。另一方面,Hive 不用于在生产环境中存储数据,而是使对大量数据运行特定查询变得非常容易。