2011-03-08 42 views
3

如何列出hbase表中的所有行键?如何列出hbase表中的所有行键?

我需要使用PHP和REST接口来做到这一点。

+1

可能重复[?如何列出在HBase的表中的所有行键(http://stackoverflow.com/questions/5218085/how-to-list-all-row-keys -h-hbase-table) – CanSpice 2011-03-22 20:46:58

+1

这是hbase_user在其他问题中试图提出的问题的一个重复......但它不是实际要求(或回答)的内容的重复。 – mdahlman 2012-01-28 06:08:41

回答

5

如果你列出所有的按键在HBase的表,那么你使用的是错误的工具。 HBase适用于大数据系统,列出所有密钥是不切实际的。

更合理的是从给定的键开始并列出接下来的N个键(对于N小于10K的值)。有一个很好的Java接口用于扫描 - 设置开始键和/或结束键。

大多数HBase功能通过Thrift接口公开。我会建议看看那里

+0

嗨大卫,谢谢你的回复。我正在试用REST接口,并发现了一些在极限范围内扫描表的方法。不幸的是,它不能像我的集群中那样工作。如果我回去寻找节俭,它会杀死我很多工作时间!如果您有任何使用REST界面连接hbase和php的良好工作方式,请上来帮助我! – 2011-03-11 05:24:36

4

我不知道什么是REST接口是什么样的,但你可能想过滤掉客户端的一些数据,以避免大的RPC响应。您可以通过添加服务器端的过滤器来扫描你做到这一点:

Scan s = new Scan(); 
FilterList fl = new FilterList(); 
// returns first instance of a row, then skip to next row 
fl.addFilter(new FirstKeyOnlyFilter()); 
// only return the Key, don't return the value 
fl.addFilter(new KeyOnlyFilter()); 
s.setFilter(fl); 

HTable myTable; 
ResultScanner rs = myTable.getScanner(s); 
Result row = rs.next(); 
while (row != null) ... 

http://svn.apache.org/repos/asf/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/filter/

+1

JAVA!我需要PHP的方式! – 2011-03-17 04:29:21

3

这...

http://localhost:8080/tablename/*/columnfamily:columnid 

...将表相对于您在返回的所有值在该表中的列,有点像在扫描仪中应用列过滤器。

此外,如果您正在寻找多列 - 用逗号分隔它们。

所以:/tablename/*/columnfamily:columnid,columnfamily:columnid2

相关问题