【问题标题】:HBase Hive IntegrationHBase Hive 集成
【发布时间】:2015-04-10 10:53:48
【问题描述】:

我通过将默认版本提到为 5 创建了一个 HBase

创建 'tablename',{NAME => 'cf', VERSIONS => 5} 并插入两行(row1 和 row2)

put 'tablename','row1','cf:id','row1id'
put 'tablename','row1','cf:name','row1name'
put 'tablename','row2','cf:id','row2id'
put 'tablename','row2','cf:name','row2name'
put 'tablename','row2','cf:name','row2nameupdate'
put 'tablename','row2','cf:name','row2nameupdateagain'

尝试使用扫描选择数据,我正在获取最新更新的数据。 当我尝试使用以下命令选择不同的版本数据时,我得到了不同的版本数据。

scan 'tablename',{RAW => true, VERSIONS => 5}

现在创建了一个 Hive 外部表来指向这个 HBase 表

CREATE EXTERNAL TABLE hive_timestampupdate(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:name")
TBLPROPERTIES ("hbase.table.name" = "tablename");

select * from hive_timestampupdate

当我查询表 hive_timestampupdate 时,我能够看到数据。

默认情况下,我会根据时间戳获取最新更新的数据。 这里也想查询不同版本的数据。

Hive 命令将获取 HBase 的不同版本数据。

请帮忙。

提前致谢。

【问题讨论】:

  • 在我写这篇评论之前,有人发布了垃圾邮件作为这个问题的“答案”。这就是 Q 受到保护的原因。

标签: hadoop hive hbase hdfs


【解决方案1】:

来自https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

目前无法访问 HBase 时间戳属性,查询总是访问具有最新时间戳的数据。

【讨论】:

  • 嗨 Piyush,感谢您的回复。根据issues.apache.org/jira/browse/HIVE-8267,我们可以根据时间戳(最新时间戳)访问数据,但只是想知道是否有可能查询不同版本的数据。
猜你喜欢
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多