1. 程式人生 > >Hbase Hive 整合對映

Hbase Hive 整合對映

Hbase Hive 整合對映

可使用HQL查詢資料

步驟

1,建立Hbase表
2,對映Hive表

步驟一

說明:cf 列簇名,只put了少量測試列
create ‘cofeed_info’,{NAME => ‘cf’, REPLICATION_SCOPE => 1}
put ‘cofeed_info’, ‘100001’, ‘cf:id’, ‘101’
put ‘cofeed_info’, ‘100001’, ‘cf:title’, ‘這是測試用的資料’
put ‘cofeed_info’, ‘100001’, ‘cf:insert_time’, ‘45679848161564’

步驟二

說明:雖然很多列在Hbase表中當前並沒有,不過沒關係,:key表示rowkey
CREATE EXTERNAL TABLE cofeed_info
(
rowkey string,
id string,
title string,
tourl string,
content string,
data_provider string,
b_class string,
b_catogory string,
source string,
insert_time timestamp,
dt string
) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ WITH
SERDEPROPERTIES (“hbase.columns.mapping”=
“:key,
cf:id,
cf:title,
cf:tourl,
cf:content,
cf:data_provider,
cf:b_class,
cf:b_catogory,
cf:source,
cf:insert_time,
cf:dt”) TBLPROPERTIES (“hbase.table.name” = “cofeed_info”);

結果

hive> desc cofeed_info;
OK
rowkey string from deserializer
id string from deserializer
title string from deserializer
tourl string from deserializer
content string from deserializer
data_provider string from deserializer
b_class string from deserializer
b_catogory string from deserializer
source string from deserializer
insert_time timestamp from deserializer
dt string from deserializer
說明:Hbase中沒有的列簇為NULL了.
hive> select * from cofeed_info;
OK
100001 101 這是測試用的資料 NULL NULL NULL NULL NULL NULL NULL NULL