【发布时间】:2018-07-03 16:29:10
【问题描述】:
我创建了一个具有以下属性的 Hive 表:
create external table statdata(uid int, user string, loc string, locweather int)
stored as textfile
row format delimited
fields terminated by ','
location '/hive/data/weatherstats’;
Hive 表包含我手动插入的 5 行。
hive> select * from statdata;
OK
1 john newyork 33
2 rob london 32
3 stan delhi 45
4 fred tokyo 38
5 phil beijing 47
我创建了一个新的 HBase 表:hbstat,只有一个列族:weather,如下所示:
create 'hbstat', 'weather'
我想从我的 hive 表中提取现有数据:statdata 到新的 hbase 表中:hbstat 有一个选项可以使用 Hbase storagehandler 将 Hive 的新插入映射到 Hbase,如下所示:
CREATE TABLE foo(rowkey STRING, a STRING, b STRING)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
WITH SERDEPROPERTIES (‘hbase.columns.mapping’ = ‘:key,f:c1,f:c2’)
TBLPROPERTIES (‘hbase.table.name’ = ‘bar’);
但这适用于插入 hive 表时的数据,同时也反映在 hbase 上。 有没有办法从 hive 表中获取旧的/现有的数据到新创建的 Hbase 表中?
【问题讨论】: