2015-04-17 28 views
1

我已經在HBase的表中的下列行稱爲test如何從REST客戶端使用後綴glob從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

我試圖檢索使用後綴通配符row的與rowkey匹配前綴的所有行,如前所述here

但爲什麼當我嘗試http://localhost:8080/test/row*時,我得到Bad request其中localhost:8080是Stargate正在偵聽的HBase REST服務器的位置,test是表格,而row是部分rowkey 。我在瀏覽器和REST客戶端海報(Firefox插件)中執行它。執行URL http://localhost:8080/test/row*/cf給出了響應value1,但我想要檢索rowkey中匹配前綴row的所有行中的值。

我正在運行HBase 0.94.26,Stargate(捆綁了HBase),Hadoop 1.2.1,Ubuntu 12.04虛擬機。

是否有可能以至少編程方式檢索所有行?

+0

是的,你可以做到這一點作爲就像在PHP中一樣。但我認爲Rest WS必須工作,你有機會通過這個鏈接http://archive.cloudera.com/cdh4/cdh/4/hbase/apidocs/org/apache/hadoop/hbase/rest/package-summary。 html#operation_cell_query_multiple –

+0

或者先試試這個鏈接'http:// localhost:8080/test/row。*'我在asterix之前加了點。 –

+0

感謝您的快速回復。我現在開始工作了。缺少的部分是在Accept中將Accept頭設置爲text/xml或application/json等。一旦我這樣做了,我就得到了響應中的所有匹配行。請將您的第一個答覆作爲答案,以便我可以接受它作爲解決方案。你共享的Cloudera鏈接幫助我解決了這個問題。 – sundeepa

回答

1

根據文檔REST可以正常工作來檢索所有行。但是,您只需修改相應的URL即可。 根據我的意見嘗試下面的聯繫他們應該工作,請注意,我還沒有測試。

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

http://localhost:8080/test/row 

後綴通配一排

多值的查詢可以任選地附加於 行密鑰後綴水珠。這是掃描儀的限制形式,將在具有包含所提供的在其左側鍵 鍵的行返回 所有的值,例如:在java中

org.someorg.* 
    -> org.someorg.blog 
    -> org.someorg.home 
    -> org.someorg.www 
相關問題