【问题标题】:Hive quering on existing table in HBase对 HBase 中的现有表进行 Hive 查询
【发布时间】:2012-04-06 20:32:40
【问题描述】:

我已经使用 CREATE EXTERNAL TABLE 命令为 HBase 中的现有表在 HIVE 中创建了表。

我可以通过 HIVE shell 查看表格

但在通过 HIVE 查询表时,返回“0”记录。通过日志确定 HIVE 正在 HADOOP 中而不是在 HBase 中执行 MAP-REDUCE 程序

我在配置 Hive 和 HBase 时是否遗漏了什么?

【问题讨论】:

  • DESCRIBE EXTENDED Table 的输出看起来正确吗?
  • 是的,它看起来正确,参数信息如下所示:parameters:{EXTERNAL=TRUE, hbase.table.name=mytable, transient_lastDdlTime=1333741785, storage_handler=org.apache.hadoop.hive.hbase。 HBaseStorageHandler}, viewOriginalText:null, viewExpandedText:null, tableType:EXTERNAL_TABLE)
  • “Stored By”子句定义的“External Table”应该可以访问HBase表行吧?我只能访问通过 Hive 添加的那些表记录。

标签: hbase hive


【解决方案1】:

我猜你使用的是 0.9 之前的 Hive 版本。

在 Hive 0.8 及之前版本上使用 HBase 存储处理程序创建 Hive 表将只允许您访问通过相应 Hive 表插入的 HBase 表中的数据。如果您的 HBase 表中有任何未通过 Hive 表插入的预先存在的数据,您也无法通过 Hive 表查询它。

从 Hive 0.9 开始,JIRA 1634 将可用,这允许 Hive 表访问 HBase 表中存在的所有数据,而不管它是如何插入其中的。

我建议你要么获取这个补丁,要么升级到 Hive 0.9

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多