1、准备环境apache
前提条件已经安装好了hbase,hiveapp
检测hive/lib目录下是否含有:hive-hbase-handler-版本.jar(经过此文件和hbase通讯)oop
2、拷贝文件url
进入hbase的lib目录下,拷贝以下文件到:hive的lib目录下spa
hbase-client-0.98.0-hadoop2.jarserver
hbase-common-0.98.0-hadoop2-tests.jarip
hbase-common-0.98.0-hadoop2.jarhadoop
hbase-protocol-0.98.0-hadoop2.jarstring
hbase-server-0.98.0-hadoop2.jartable
htrace-core-2.04.jar
启动hive,以上整合完成
3、假定Hbase中已经存在以下表:
表名:testTable
列簇:f
列:ip
列:url
须要在hive中建立一个外部表,指向hbase
语句以下:
CREATE EXTERNAL TABLE log2 (key String ,url string,ip string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,f:url,f:ip")
TBLPROPERTIES("hbase.table.name" = "log");
4、解释:
Log2: 表示hive的外部表名字
key: 必须有
在建立hive/hbase相关联的表时,hbase表结构默认会有一个字段key,若是没有一个显示的字段'key'那么在建立表的进修,会本身建立,这样hive对应的表就会出现问题,因此在hive对应的表里必定要加上key这个字段,为了不这个问题,在hbase表结构里能够显示的添加'key'字段,这样不容易出问题。
Hbase.columns.mapping表示和hbase的列作映射
5、验证
在hbase中插入数据
在hive中执行查询,可查询数据