Hive和Hbase有各自不一样的特征:hive是高延迟、结构化和面向分析的,hbase是低延迟、非结构化和面向编程的。Hive数据仓库在hadoop上是高延迟的。Hive集成Hbase就是为了使用hbase的一些特性。以下是hive和hbase的集成架构: 数据库
图1 hive和hbase架构图 编程
Hive集成HBase能够有效利用HBase数据库的存储特性,如行更新和列索引等。在集成的过程当中注意维持HBase jar包的一致性。Hive集成HBase须要在Hive表和HBase表之间创建映射关系,也就是Hive表的列(columns)和列类型(column types)与HBase表的列族(column families)及列限定词(column qualifiers)创建关联。每个在Hive表中的域都存在于HBase中,而在Hive表中不须要包含全部HBase中的列。HBase中的RowKey对应到Hive中为选择一个域使用:key来对应,列族(cf:)映射到Hive中的其它全部域,列为(cf:cq)。例以下图2为Hive表映射到HBase表: bash
图2 Hive表映射HBase表 架构