Nutch 2.2.1 및 Cassandra 2를 사용하여 페이지를 크롤링하고 있습니다. 테스트를 위해 저는 카산드라에게 하나의 URL을 삽입하고 데이터베이스를 탐색합니다. 내가 웹 페이지의 키 스페이스에쿼리 nutch 2 테이블 결과 cassandra 2 복용량이 올바르지 않습니다.
cqlsh을 테이블을 조회 할 수 있습니다 CQL을 사용하여
: 단면>을 선택 * webpage.f에서;
key | column1 | value
--------------------------------------+---------+--------------------
0x6564752e6373752e7777773a687474702f | 0x6669 | 0x00278d00
0x6564752e6373752e7777773a687474702f | 0x73 | 0x3f800000
0x6564752e6373752e7777773a687474702f | 0x7473 | 0x00000145a266703e
이 16 진수 바이트를 문자열로 변환하면 문제가 없습니다. 열쇠는 되 돌린 URL이 될 것입니다.
는 난 결과는 아래와 같다 샘플 코드
Cluster cluster = Cluster.builder().addContactPoint("10.20.104.181").build();
Session session = cluster.connect();
ResultSet results = session.execute("SELECT * FROM webpage.f");
for (Row row : results) {
System.out.println("Key");
System.out.println(toStrFromByteBuffer(row.getBytes("key")));
System.out.println("column1");
System.out.println(toStrFromByteBuffer(row.getBytes("column1")));
System.out.println("value");
System.out.println(toStrFromByteBuffer(row.getBytes("value")));
}
cluster.close();
public static String toStrFromByteBuffer(ByteBuffer buffer)
{
byte[] ar=buffer.array();
System.out.println(ar.length);
return new String(ar,Charset.forName("UTF-8"));
}
따라 datastax 자바 드라이버 2 (http://www.datastax.com/documentation/developer/java-driver/2.0/java-driver/whatsNew2.html)
F를 이용하여 테이블을 판독하는 자바 코드 물품. row.getBytes ("key")가 특정 열 값이 아닌 전체 행 데이터를 반환하는 것을 볼 수 있습니다.
일부 마스터가이 문제에 도움을 줄 수 있습니까?
안녕하세요, 지금 동일한 문제가 있습니다. 나는 Nutch 2.2.1과 Cassandra 1.2.9를 사용하고 있습니다. 왜 데이터가 16 진수 형식으로 저장되는지 모르겠습니다. UTF-8로하고 싶습니다. 이거 해결 했니? –