目标:能通过hive访问hbase,实现操作简化
查看了网上一些博文,主要通过博文:wulantian的博文进行整理的
1,在创建表时与hbase进行对应
create table
hbase_tb_user(
id int,
name String,
remark String
)
stored by
'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
("hbase.columns.mapping" = ":key,data:user,data:password,data:remark")
TBLPROPERTIES ("hbase.table.name" = "tb_user");
执行以上操作,可在hive创建表hbase_tb_user,在hbase创建tb_user表(如果hbase中已经存在tb_user则提示表以存在),并建立hive表和hbase表的对应关系。
以上说过在hbase中存在对应表时,会报表存在错误,那么怎样对应在hbase中已经存在的表了,悄悄告诉你们一个方法,只要在hive建表语句中加入关键字‘external’就可以了,如下:
create external table
hbase_tb_user(
id int,
name String,
remark String
)
stored by
'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
("hbase.columns.mapping" = ":key,data:user,data:password,data:remark")
TBLPROPERTIES ("hbase.table.name" = "tb_user");
这样就会和hbase中已存在的表做对应。