我正在浏览与HBase REST API相关的一些问题。
首先让我先介绍一下背景: 我在公司的CDH集群中构建了一个HBase表。行键是“|” 。列族是“d”,列限定符是日期也是字符串(例如,2012-01-27)。为了向公司中其他感兴趣的人提供对表数据的访问,我构建了一个Django API,它运行良好。我的团队中有人建议Hbase带有内置API,我可以直接使用它来访问数据。我阅读了在线HBase文档,看起来确实已经有了HBase附带的现成品。但我没有成功使用它,因此我在这里寻求帮助。
以下是我正在运行的问题列表:
Chrome浏览器 在Chrome浏览器中,我输入了以下网址: HTTP://< ip address>:20550 / namespace:tablename /#00003 | 313001098 / d 我期望它将在浏览器中呈现特定于所提供的行键的数据,而是下载包含仅一个列限定符的数据的html文件,并且它没有关于数据所属的列限定符的任何信息。 。
卷曲 我在unix shell中用curl命令做了同样的事情。 curl -i http://< ip address>:20550 / namespace:tablename /%2300003%7C313001098 / d 请注意,%23是#的编码,%7C是|的编码(管)。 上面的命令只给出了一个列限定符的数据。
我使用以下命令使用HBase shell双重检查了我的数据:
get 'namespace:tablename', '#00003|313001098'
我从多个列限定符中获取数据。因此,我可以确认我缺少某些东西,或者HBase内置API不是为了做我想做的事情而构建的。
提前致谢。
答案 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