Hbase用于实时应用

时间:2016-12-04 10:59:20

标签: hadoop hbase lambda-architecture bigdata

我想构建一个用于预测性维护的实时应用程序。 我想过在凤凰城使用Hbase。 Phoenix在HBase上提供SQL层。

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

我希望拥有一个类似lambda架构的系统。用于批处理和流处理。 将HDFS顶部的HBase放在我的OLTP和OLAP系统中吗?

由于lambda架构具有批处理和速度层。我是否可以在HDFS中使用HBase数据进行批处理并将结果保存回Hbase?

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

1 个答案:

答案 0 :(得分:3)

HBase的选择基于以下内容:

数量:数百万和数十亿比数千和数百万更好

功能:当您不需要事务,二级索引和一些RDBMS功能时

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

更具体:

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

除此之外,使用HBase过滤器可以选择其他列值,但选择的次数非常少,可能无法保证Web应用程序的响应时间。

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

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

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

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