创建指向HBase表的外部Hive表

时间:2015-05-17 13:05:29

标签: sql hadoop hive hbase impala

我在HBase中有一个名为"HISTORY"的表,其列族"VDS"和列名ROWKEY, ID, START_TIME, END_TIME, VALUE.我正在使用Cloudera Hadoop Distribution。我想使用Impala为HBase表提供SQL接口。为了做到这一点,我们必须在Hive中创建相应的外部表?那么如何创建指向这个HBase表的外部hive表呢?

1 个答案:

答案 0 :(得分: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;