Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询、同时也可以将hive表中的数据映射到Hbase中。
版本说明:
hbase版本:hbase-1.3.1
hive版本:apache-hive-2.3.3-bin
数据模型:
row,addres,age,username 001,guangzhou,20,alex 002,shenzhen,34,jack 003,beijing,23,lili
创建HBase的数据:
create 'stu','info'
put 'stu','001','info:addres','guangzhou' put 'stu','001','info:age','20' put 'stu','001','info:username','alex' put 'stu','002','info:addres','shenzhen' put 'stu','002','info:age','34' put 'stu','002','info:username','jack' put 'stu','003','info:addres','beijing' put 'stu','003','info:age','23' put 'stu','003','info:username','lili'
修改hive-site.xml配置文件:
在hive-site.xml文件中配置zookeeper,hive通过这参数的配置去连接HBase。
<property> <name>hbase.zookeeper.quorum</name> <value>bigdata-pro-m04,bigdata-pro-m05,bigdata-pro-m06</value> </property>
将hbase lib目录中的jar包拷贝到hive中:
hbase-client-1.3.1.jar hbase-common-1.3.1.jar hbase-hadoop2-compat-1.3.1.jar hbase-hadoop-compat-1.3.1.jar hbase-it-1.3.1.jar hbase-protocol-1.3.1.jar hbase-server-1.3.1.jar htrace-core-3.1.0-incubating.jar
创建与HBase集成的Hive的外部表:
CREATE EXTERNAL TABLE stu( id string, addres string, age string, username string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( "hbase.columns.mapping" = ":key,info:addres,info:age,info:username") TBLPROPERTIES ("hbase.table.name" = "stu");
通过hive命令查看结果:
hive (hivespark)> select * from stu;
stu.id stu.addres stu.age stu.username 001 guangzhou 20 alex 002 shenzhen 34 jack 003 beijing 23 lili