1. 程式人生 > >hive和hbase資料相互關聯

hive和hbase資料相互關聯

一.使用hive獲取,HBASE中資料
1.create 'hadoop:hbase_hive_human','info'
2.造數
put 'hadoop:hbase_hive_human','1','info:id','1'
put 'hadoop:hbase_hive_human','1','info:name','wang'
put 'hadoop:hbase_hive_human','1','info:age',18
 
put 'hadoop:hbase_hive_human','2','info:id','2'
put 'hadoop:hbase_hive_human','2','info:name','wang'
put 'hadoop:hbase_hive_human','2','info:age',18

 put 'hadoop:hbase_hive_human','3','info:id','3'
put 'hadoop:hbase_hive_human','3','info:name','wang'
put 'hadoop:hbase_hive_human','3','info:age',18
 
put 'hadoop:hbase_hive_human','4','info:id','4'
put 'hadoop:hbase_hive_human','4','info:name','wang'
put 'hadoop:hbase_hive_human','4','info:age',18

put 'hadoop:hbase_hive_human','5','info:id','5'
put 'hadoop:hbase_hive_human','5','info:name','wang'
put 'hadoop:hbase_hive_human','5','info:age',18
 
3.建立一個
create external  table hive.hbase_hive_human(
rowkey string,
id int,
name string
 ) 
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
 with serdeproperties ("hbase.columns.mapping" = ":key,info:id,info:name"
 ,"hbase.table.name" = "hadoop:hbase_hive_human");
或
create external  table hive.hbase_hive_human(
rowkey string,
id int,
name string
 ) 
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
 with serdeproperties ("hbase.columns.mapping" = ":key,info:id,info:name")
 tblproperties ("hbase.table.name" = "hadoop:hbase_hive_human");



二.利用hive把hdfs中資料匯入hbase
sqoop只能把資料匯入到hdfs中,
所有可以利用hive 再把hdfs中資料匯入hbase中
1.建立一個hive表
create table hive.hivetohbase(
id int,
name string,
age int
 ) 
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
 with serdeproperties (
"hbase.columns.mapping" = ":key,info:name,info:age",
"hbase.table.name" = "hadoop:hivetohbase");
不能直接從本地匯入到該表(報錯)
load data local inpath '/home/wang/a/1.txt'  INTO TABLE hive.hivetohbase;
可以使用以下方式插入資料:
insert into table    hive.hivetohbase select id,name,age from st;
insert OVERWRITE table hive.hivetohbase select id,name,age from st;