2

私は nutch2.2.1 + hbase0.90.4 を使用しており、HBase REST API Stargate経由でデータにアクセスしたいと考えています。Nutch に URL (例: www.usatoday.com) をシードすると、反転した URL が指定されたテーブル ('webpage') の HBase 行キーになります。次のように、hbase シェル経由でデータを検索できます。

hbase(main):001:0> get 'webpage', 'com.usatoday.www:http/'
COLUMN                                         CELL                                                                                                                                 
 f:fi                                          timestamp=1404762373394,value=\x00'\x8D\x00                                                                                         
 f:ts                                          timestamp=1404762373394, value=\x00\x00\x01G\x12\\xB5\xB3                                                                            
 mk:_injmrk_                                   timestamp=1404762373394, value=y                                                                                                     
 mk:dist                                       timestamp=1404762373394, value=0                                                                                                     
 mtdt:_csh_                                    timestamp=1404762373394, value=?\x80\x00\x00                                                                                         
 s:s                                           timestamp=1404762373394, value=?\x80\x00\x00       

しかし、REST API の使用に問題があります。おそらく、問題を引き起こしている「http」の前のコロンを抑制するために、かなり単純なURLエンコーディングを行う必要がありますか?

たとえば、試してみるとHTTP 404が表示されます

curl http://localhost:8900/webpage/com.usatoday.www:http/

私が試したときも

curl http://localhost:8900/webpage/com.usatoday.www%3Ahttp/

「row3」という行を「test」というテーブルに作成してルックアップできるため、REST API が正常に動作していることはわかっています。

curl http://localhost:8900/test/row3  

次の期待される結果を確認するには:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="cm93Mw=="><Cell timestamp="1404761922130" column="Y2Y6Yw==">dGhpcyBpcyBzb3J0YSB3b3JraW5nIG5vdw==</Cell></Row></CellSet>

助けてくれてありがとう!

4

1 に答える 1

2

スラッシュも URL エンコードする必要があります。以下の作品。

curl http://localhost:8900/webpage/com.usatoday.www%3Ahttp%2F
于 2014-07-16T12:56:23.653 に答える