一、为什么要整合hive和hbase
二、整合后实现的目标
三、当hive和hbase版本都是1.几时,需要重新编译jar包hive-hbase-handler,操作步骤如下:
- 1、下载hive源码:(这个地址可方便快捷下载大数据平台的各个组件)
http://archive.apache.org/dist/hive/hive-1.2.1/
- 2、解压,进入Hive源码,把hbase-handler模块引入Eclipse项目中:
- 3、创建Java Project:
-
4、创建lib文件夹
- 5、导入Hive源码的hbase-handler模块
- 6、把Hive和HBase 安装包lib目录下的所有jar包,复制到java project的lib目录下:
- 7、把lib包下的所有jar包Build Path,添加到类路径
将某个jar包从类路径中删除:
右键-----
- 8、打包项目,开始重新编译
- 9、替换hive/lib目录下的hive-hbase-handler-1.2.1.jar
四、建表测试:
hive中创建hbase中不存在的表:
CREATE TABLE hbase_table_1(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")
TBLPROPERTIES ("hbase.table.name" = "xyz", "hbase.mapred.output.outputtable" = "xyz");
Hive去访问Hbase中已经存在的表,创建外部表(CREATE EXTERNAL TABLE)
CREATE EXTERNAL TABLE hive_hbase_table_t_user (key string, name string, age int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf_user_info:name,cf_user_info:age")
TBLPROPERTIES ("hbase.table.name" = "hbase_to_hive_t_user");
五、hbase与hive哪些版本兼容?
hive0.90与hbase0.92是兼容的,早期的hive版本与hbase0. 890.90兼容; hive1.x与hbase0.98.x或则更低版本是兼容的。 hive2.x与hbase1.x及比hbase1.x更高版本兼容;
如果想hbase1.x与hive1.x整合,需要编译hive-hbase-handler代码。
参考文章: