2013-09-26 1 views
1

Hadoop/Cassandra 통합 작업 중입니다. 누군가가 도와 줄 수 있기를 희망하는 몇 가지 질문이 있습니다.Cassandra/Hadoop with COMPACT STORAGE 옵션을 선택하십시오. 왜 필요합니까, 기존 테이블에 추가 할 수 있습니까?/cf

우선, 소스 테이블/cf가 WITH COMPACT STORAGE 옵션으로 생성 된 것 같습니다. 그렇지 않으면 map/reduce 코드에서 keyspace를 읽지 못하는 오류가 발생합니다.

이것이 필요한지 궁금합니다.

이 경우 두 번째 질문은 가능한 것입니까/사전 압축 테이블에 WITH COMPACT STORAGE 옵션을 추가하려면 어떻게해야합니까? .. 또는 나는 그들을 다시 만들고 데이터를 옮겨야 할 것이다.

나는 게리

사전 에 카산드라 1.2.6

감사를 사용하고

답변

3

은 이에 대한 매퍼 입력이 유사 Map<String, ByteBuffer>, Map<String,ByteBuffer>

입니다 job.setInputFormatClass(CqlPagingInputFormat.class);

사용하여 시도 적절한 출력 유형.

자세한 내용은 http://www.datastax.com/dev/blog/cql3-table-support-in-hadoop-pig-and-hive을 참조하십시오.

+0

정확히 내가 한 일이었습니다! 팁 고마워. 나는 코드를 CqlPagingInputFormat로 바꿨고 출력 클래스를 일치시켰다. (wordcount 예제에서 약간의 도움을 받아 https://github.com/apache/cassandra/blob/trunk/examples/hadoop_cql3_word_count/src/WordCount.java의 도움을 받았다. 카산드라에 독서와 글쓰기를 즐겨보세요! – gerrymcdev

0

@Gerry

은 "COMPACT 스토리지"일이 드리프트 클라이언트와 레거시와 호환 테이블 구조를 만들 수 CQL3 구문은 컬럼 제품군.

본질적으로이 옵션을 사용할 때 테이블을 만들거나 열 패밀리라고 말해야합니까? 복합체를 사용하지 않고 생성됩니다.

CQL3 테이블은 복합 요소가 작동하는 데 많이 의존한다는 것을 알아야합니다.

이제 귀하의 질문에 대답이 그것을 할 필요가 얼마나 경우 궁금 해서요

?

아마도지도/코드 줄이기가 복합체를 처리 할 수 ​​없기 때문일 수 있습니다. 그러나 Cassandra의 버전 1.2.6을 믿습니다. CQL3 테이블을 처리하는 데 필요한 모든 코드가 있습니다. 클래스 org.apache.cassandra.hadoop에서보세요.

가능/사전 압축 테이블에 WITH COMPACT STORAGE 옵션을 어떻게 추가합니까?

아니요, 생성 된 테이블 구조는 수정하거나 변경할 수 없습니다. 어떤 종류의 마이그레이션이 필요할 것입니다. 당신이 카산드라 우리 CqlPagingOutputFormat와에게 쓸 필요가 있다면 당신이 대신

job.setInputFormatClass(ColumnFamilyInputFormat.class);를 사용하고 있으리라 믿고있어

+0

감사합니다. – gerrymcdev