1. 程式人生 > 其它 >Hbase和hive的整合

Hbase和hive的整合

一、Hbase寫入資料到hive中

1.1 首先在Hbase上建立一張表hbase2hive

create 'hbase2hive','info'

1.2 向hbase2hive插入兩條資料做測試

1 put 'hbase2hive','user001','info:name','xiaoming'
2 put 'hbase2hive','user001','info:age',18
3 put 'hbase2hive','user002','info:name','xiaohong'
4 put 'hbase2hive','user002','info:age',17

1.3 在hive中建立外部表hive_test01並關聯到Hbase的hbase2hive

create exteral table hive_test01 (id string,name string,age int) 
stored by 'org.apache.hadoop.hive.HbaseStorageHandler' 
with serdeproperties("hbase.columns.mapping"=":key,info:name,info:info:age") 
tblproperties("hbase.table.name"="hbase2hive")

sotred by :表示hive_test的儲存格式

with serdeproperties:序列化和反序列化的設定

tblproperties:hive表的屬性設定(例子中案例表示hive_test關聯hbase2hive表資料)

1.4 接下來就可以在hive_test中查詢到Hbase中Hbase2hive表的資料啦!

二、hive寫入資料到Hbase中

2.1 在Hbase中建立表hive2hbase(資料匯入到這個表中)

create 'hive2hbase','info'

2.2 在hive表中建立外部表hive_test02

create exteral table hive_test02 (id string,name string,age int) 
stored by 'org.apache.hadoop.hive.HbaseStorageHandler
' with serdeproperties("hbase.columns.mapping"=":key,info:name,info:info:age") tblproperties("hbase.table.name"="hive2hbase")

2.3 在hive中建立臨時表(將資料寫入在hive_test02)

create temporary table tmp_user(id string,name string,age int) row format delimited fields terminated by '\t';

2.4向臨時表中新增資料

load data local inpath '/home/test/user.txt' into table hive_test02;

2.5 在Hbase中查詢資料即可