HBase REST API - 数据问题,浏览器问题,似乎不起作用

时间:2016-05-25 22:05:38

标签: hbase

我正在浏览与HBase REST API相关的一些问题。

首先让我先介绍一下背景: 我在公司的CDH集群中构建了一个HBase表。行键是“|” 。列族是“d”,列限定符是日期也是字符串(例如,2012-01-27)。为了向公司中其他感兴趣的人提供对表数据的访问,我构建了一个Django API,它运行良好。我的团队中有人建议Hbase带有内置API,我可以直接使用它来访问数据。我阅读了在线HBase文档,看起来确实已经有了HBase附带的现成品。但我没有成功使用它,因此我在这里寻求帮助。

以下是我正在运行的问题列表:

  1. Chrome浏览器   在Chrome浏览器中,我输入了以下网址:   HTTP://< ip address>:20550 / namespace:tablename /#00003 | 313001098 / d  我期望它将在浏览器中呈现特定于所提供的行键的数据,而是下载包含仅一个列限定符的数据的html文件,并且它没有关于数据所属的列限定符的任何信息。 。

  2. 卷曲  我在unix shell中用curl命令做了同样的事情。  curl -i http://< ip address>:20550 / namespace:tablename /%2300003%7C313001098 / d 请注意,%23是#的编码,%7C是|的编码(管)。 上面的命令只给出了一个列限定符的数据。

  3. 我使用以下命令使用HBase shell双重检查了我的数据:

     get 'namespace:tablename', '#00003|313001098'
    

    我从多个列限定符中获取数据。因此,我可以确认我缺少某些东西,或者HBase内置API不是为了做我想做的事情而构建的。

    提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要指定所需的确切列。看起来Rest API不允许您获取超过1列。

如果您参考此链接中的表14: - http://hbase.apache.org/book.html#_rest,您会看到以下端点被公开以使用Hbase Rest API执行get操作: -

1)/ table / row / column:qualifier / timestamp

2)/ table / row / column:qualifier

3)/ table / row / column:qualifier /?v = number_of_versions

所有这些都需要一个列:限定符

您的查询必须采用以下格式: -

的http://< ip address>:20550 / namespace:tablename /#00003 | 313001098 / d:20160202