【发布时间】:2018-08-10 20:37:23
【问题描述】:
我正在 Hbase 表之上创建 hive 外部表,以便我可以使用 Hive 分析数据,但是当我运行使用 Hbase serde 创建表的脚本时,它会抛出错误“Hbase 表不存在。请检查附件图像错误。请指导。
【问题讨论】:
我正在 Hbase 表之上创建 hive 外部表,以便我可以使用 Hive 分析数据,但是当我运行使用 Hbase serde 创建表的脚本时,它会抛出错误“Hbase 表不存在。请检查附件图像错误。请指导。
【问题讨论】:
如果您的 HBase 表是在 特定命名空间 (network_tower) 中创建的,那么您并没有提及如何从 HBase 中的特定命名空间访问 表的正确语法。
在 tblproperties 中包含 :(colon) 以从 HBase 命名空间而不是 .(period)
访问表TBLPROPERTIES("hbase.table.name" = "network_tower:orders")
HBase-Hive ddl 示例:
CREATE EXTERNAL TABLE test(rowkey string, ...)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:...")
TBLPROPERTIES("hbase.table.name" = "network_tower:orders");
由于您正在创建外部表,因此 HBase 表需要已经存在,
确保表存在于 HBase 中。
bash$ hbase shell
hbase(main):> scan 'network_tower:orders',{LIMIT=>1}
【讨论】: