hive和hbase整合 构建低延迟的数据仓库
1、摘要
Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询、同时也可以将hive表中的数据映射到Hbase中。
2、应用场景
2.1 将ETL操作的数据存入HBase
2.2 HBase作为Hive的数据源
2.3 构建低延时的数据仓库
3、环境准备
3.1 hive与hbase版本兼容性
Hive版本 hive-1.2.1、hbase的版本hbase-1.2.1
hbase与hive哪些版本兼容?
1.hive0.90与hbase0.92是兼容的,早期的hive版本与hbase0.89/0.90兼容。
2.hive1.x与hbase0.98.x或则更低版本是兼容的。
3.hive2.x与hbase1.x及比hbase1.x更高版本兼容。
Hive 0.6.0推出了storage-handler,用于将数据存储到HDFS以外的其他存储上。并方便的通过hive进行插入、查询等操作。同时hive提供了针对Hbase的hive-hbase-handler。这使我们在使用hive节省开发M/R代码成本的同时还能获得HBase的特性来快速响应随机查询。
但是,hive自带的hive-hbase-handler是针对特定版本的Hbase的,比如,0.7.0版本的hive编译时使用的是0.89.0版本的Hbase,0.6.0版本的hive默认使用0.20.3版本的hbase进行编译。如果能够找到对应的版本,可以跳过编译的步骤直接使用。不过,我们现状已经找不到这些版本的Hbase与之配合使用了。所以只好自己来编译这个jar包。
注:使用不匹配的版本,一些功能会发生异常。其原因是由于没有重新编译storage-handler组件,发现在hive中查询HBase表存在问题。hive-hbase-handler.jar的作用在hbase与hive整合的时候发挥了重要作用,有了这个包,hbase与hive才能通信。
如果想hbase1.x与hive1.x整合ÿ