【问题标题】:Create External Hive Table Pointing to HBase Table创建指向 HBase 表的外部 Hive 表
【发布时间】:2015-05-17 13:05:29
【问题描述】:
我在 HBase 中有一个名为 "HISTORY" 的表,该表具有列族 "VDS" 和列名 ROWKEY, ID, START_TIME, END_TIME, VALUE. 我正在使用 Cloudera Hadoop Distribution。我想使用 Impala 为 HBase 表提供 SQL 接口。为了做到这一点,我们必须在 Hive 中创建相应的外部表?那么如何创建指向这个 HBase 表的外部 hive 表呢?
【问题讨论】:
标签:
sql
hadoop
hive
hbase
impala
【解决方案1】:
在 Hive 查询编辑器中运行以下代码:
CREATE EXTERNAL TABLE IF NOT EXISTS HISTORY
(
ROWKEY STRING,
ID STRING,
START_TIME STRING,
END_TIME STRING,
VALUE DOUBLE
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
(
"hbase.columns.mapping" = ":key,VDS:ID,VDS:START_TIME,VDS:END_TIME,VDS:VALUE"
)
TBLPROPERTIES("hbase.table.name" = "HISTORY");
不要忘记在创建外部表后使用以下 bash 命令刷新 Impala 元数据:
echo "INVALIDATE METADATA" | impala-shell;