Hive+HBase集成模型

伴随着大数据的应用,Google, 亚马逊,国内 BAT 等正在彻底的颠覆我们的生活。作为消费者,我们期望智能的应用程序能预知,建议,预测我们的每一个行为;筛选数百万种可能性后向我们推荐最适合我们的选择;借助智能应用在无尽的可能中挑选出最具个性化的配搭。—— 如此的个性化配搭要求系统存储并在短时间内分析处理海量数据源,这便是 Hadoop 诞生第一天所要完成的使命。

同时,大数据企业正在使用更为广泛的数据处理技术来构建具有深度分析的应用程序,常见的模式包括:

  • 使用 HBase 作为在线操作数据存储,以便快速更新热数据,例如当前的小时/分钟等
  • 使用 Apache Phoenix 直接对 HBase 执行操作查询
  • 使用标准 ETL 模式在 HBase 到 Hive 表中将数据老化(Aging)
  • 使用 Hive 执行深层次的 SQL 分析

Hive 和 Hbase 有各自不同的特征:

  • Hive 是高延迟、结构化和面向分析的
  • Hbase 是低延迟、非结构化和面向编程的
  • Hive 数据仓库在 Hadoop 上是高延迟的

Hive 集成 HBase,可以有效利用 HBase 数据库的存储特性,如:行更新和列索引等。在集成的过程中需要注意维持 HBase jar 包的一致性。Hive 集成 HBase 需要在 Hive 表和 HBase 表之间建立映射关系,也就是 Hive 表的列和列类型与 HBase 表的列族及列限定词建立关联。每一个在 Hive 表中的域都存在与 HBase 中,而在 Hive 表中不需要包含所有 HBase 中的列。下图显示了 Hive 与 Hbase 集成的几种常见集成模型:

hive-hbase-integration
hive-hbase-integration

企业正在使用广泛的数据深度分析架构组合,如:Apache HBase,Apache Hive,Apache Phoenix 等来处理对大量数据集的当前数据和分析的快速更新,这些数据集都存储在 HDFS 中,以实现闭环分析系统。

扩展阅读:Hortonworks HBASE AND HIVE – BETTER TOGETHER