创建外部 Hive Table 指向 HBase Table

Create External Hive Table Pointing to HBase Table

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

运行 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 命令创建外部 Table 后刷新 Impala 元数据:

echo "INVALIDATE METADATA" | impala-shell;