3

我想为预测性维护构建一个实时应用程序。我考虑过将 Hbase 与 Phoenix 一起使用。Phoenix 在 HBase 上提供 SQL 层。

我读到 Hbase 对大数据有好处,比如 1 亿行加++。但是我的应用程序数据目前没有数据。如果一开始只有少量数据,Hbase 数据库将如何反应?HBase 是实时 Web 应用程序的一个很好的解决方案吗?

我想要一个类似 lambda 架构的系统。用于批处理和流处理。HDFS 之上的 HBase 会成为我的 OLTP 和 OLAP 系统吗?

由于 lambda 架构具有 Batch 和 Speed 层。我可以将 HDFS 中的 HBase 数据也用于批处理并将结果保存回 Hbase 吗?

一般来说,我想知道 HBase 是否是构建实时 Web 应用程序以进行分析的好解决方案。

4

1 回答 1

4

HBase 的选择通常基于以下几点:

体量:百万好于千万

特性:当你不需要事务、二级索引和一些 RDBMS 特性时

硬件:确保您有足够的硬件用于区域服务器。它涉及大量的维护

更详细:

由于其快速的随机读取查询,它最适合 Web 应用程序。但这仅带有非常好的行键设计。这涉及您提前计划好最终查询并设计行键。如果您还有基于时间的数据并且您的查询严重依赖它,则需要特别注意行键设计。简而言之,您应该避免热点。这里有一些信息

除此之外,使用 HBase 过滤器可以通过其他列值进行选择,但选择很少,并且可能无法保证 Web 应用程序的响应时间。

此外,如果您的数据集(行)具有可变数量的列,并且您不需要查询中的所有列,那么 HBase 再次是最佳选择

在 HBase 中可以进行服务器(区域)故障转移 - 因此您的数据将是安全的。

它可以用于批处理和流式传输。当然,对于流式传输,它是大数据堆栈中最好的。然而,这也取决于您的流式传输管道 - 例如 kafka、火花流式传输或风暴等。

既然你提到了 Phoenix,我假设你可能想坚持 HBase 的 sql 视图——这可能会给你更好的选择。然而,在核心上,行键设计仍然是 HBase 性能的核心

于 2016-12-05T04:10:10.040 回答