복붙노트

[HADOOP] 행 키가 반전 된 URL 인 경우 HBase REST API (Stargate)를 찾는 방법

HADOOP

행 키가 반전 된 URL 인 경우 HBase REST API (Stargate)를 찾는 방법

nutch2.2.1 + hbase0.90.4를 사용하고 있으며 HBase REST API Stargate를 통해 데이터에 액세스하려고합니다. url (예 : www.usatoday.com)을 사용하여 nutch를 시드하면 반전 된 url은 지정된 테이블 ( '웹 페이지')에서 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/

'test'라는 테이블에 'row3'이라는 행을 만들 수 있으므로 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>

도와 주셔서 감사합니다!

해결법

  1. ==============================

    1.슬래시도 URL 인코딩해야합니다. 다음과 같이 작동합니다.

    슬래시도 URL 인코딩해야합니다. 다음과 같이 작동합니다.

    curl http://localhost:8900/webpage/com.usatoday.www%3Ahttp%2F
    
  2. from https://stackoverflow.com/questions/24734045/how-to-lookup-hbase-rest-api-stargate-if-the-row-keys-are-reversed-urls by cc-by-sa and MIT license