【问题标题】:How do I retrieve multiple rows from HBase using suffix glob, from a REST client?如何从 REST 客户端使用后缀 glob 从 HBase 检索多行?
【发布时间】:2015-06-24 05:32:43
【问题描述】:

我在名为 test 的 HBase 表中有以下行

ROW COLUMN+CELL row1 column=cf:a, timestamp=1429204170712, value=value1 row2 column=cf:b, timestamp=1429204196225, value=value2 row3 column=cf:c, timestamp=1429204213427, value=value3

我正在尝试使用 Suffix Globbing 检索所有带有 rowkey 匹配前缀 row 的行,如提到的 here

但是当我尝试http://localhost:8080/test/row* 时为什么会得到Bad request,其中localhost:8080 是HBase REST 服务器Stargate 正在侦听的位置,test 是表,row 是部分行键。我在浏览器和 REST 客户端海报(Firefox 插件)中执行它。执行 URL http://localhost:8080/test/row*/cf 会得到响应 value1 但我想检索所有行中的值,其中行键匹配前缀为 row

我正在运行 HBase 0.94.26、Stargate(与 HBase 捆绑在一起)、Hadoop 1.2.1、Ubuntu 12.04 虚拟机。

是否可以至少以编程方式检索所有行?

【问题讨论】:

  • 是的,您可以在 Java 和 PHP 中执行此操作。但我认为 Rest WS 必须工作你有机会通过这个链接archive.cloudera.com/cdh4/cdh/4/hbase/apidocs/org/apache/hadoop/…
  • 或者先试试这个链接http://localhost:8080/test/row.*我刚刚在asterix前面加了点。
  • 感谢您的快速回复。我现在开始工作了。缺少的部分是将 Poster 中的 Accept 标头设置为 text/xml 或 application/json 等。一旦我这样做了,我就会在响应中得到所有匹配的行。请将您的第一个回复作为答案,以便我可以接受它作为解决方案。您分享的 Cloudera 链接帮助我解决了问题。

标签: rest hadoop hbase stargate


【解决方案1】:

根据文档 REST 可以很好地检索所有行。但是,您只需相应地修改 URL。 根据我的意见,尝试以下组合应该可以工作,请注意我尚未测试。

http://localhost:8080/test/row*

http://localhost:8080/test/row

后缀通配

一行的多个值查询可以选择在其上附加一个后缀 glob 行键。这是一种受限形式的扫描仪,它将返回 所有行中具有包含所提供键的键的所有值 在他们的左侧,例如:

org.someorg.*
    -> org.someorg.blog
    -> org.someorg.home
    -> org.someorg.www

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 2017-12-14
    • 2012-04-06
    • 2014-04-15
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多