2013-08-02 2 views
1

Apache Cassandra 노드를 링에 연결하려고합니다. Datastax 버전이 아니라 Apache 웹 사이트의 Cassandra 1.2.8입니다. 나는 예외 다음받을 상대방의 씨앗으로 하나를 추가하려고 할 때 : 그 전에카산드라 링 구성

Unable to find compaction strategy class 'com.datastax.bdp.hadoop.cfs.compaction.CFSCompactionStrategy' 

을 나는 각 노드의 로컬 IP 주소로 "listen_address"와 "rpc_address"로 변경. 다음 단계 하나의 IP를 다른 노드의 시드로 추가합니다. 노드가 시작되고 예외가 인쇄되지만 두 노드는 다시 시작할 때까지 정상적으로 실행됩니다. 두 노드 중 하나를 다시 시작하면 예외가 인쇄되고 노드는 실행되지 않습니다.

이것은 매우 이상합니다. DSE 구성 요소가 없습니다.

답변

1

이전에 DSE 구성 요소를 사용 했습니까? 노드에서 동일한 데이터 디렉토리를 사용하고 있다면이 압축 전략으로 생성 된 이전 열 패밀리를 찾을 수 있습니다. 모든 노드의 데이터 디렉토리에 원하는 데이터가 없으면 모든 노드를 중지하고 디렉토리를 삭제 한 다음 노드를 시작하여 노드를 지워야합니다.

DSE 노드가 아직 남아있는 경우 새 클러스터에 가입하고 스키마를 전파하여이 압축 전략을 사용하여 열 패밀리를 만들 수 있습니다. 로그를보고 어떤 노드가 연결을 시도하는지 알면 알 수 있습니다. 만약 당신의 1.2.8 반지에서 다음되지 않은 경우 이것은 아마도 원인입니다.

+0

저는 그렇게 생각하지 않습니다. 하나의 머신은 깨끗한 VM이고 다른 하나는 DSE의 흔적을 갖고 있지 않은 것 같습니다. 링을 설정하려고 할 때마다 "/ data"및 "/ log"폴더도 삭제했습니다. –

0

이 오류는 링에 DSE 분석 노드가 있거나 애널리틱스 노드가있는 다른 곳에서 스키마를 복원했다는 것을 의미합니다.

VM에/etc/dse/폴더가 있는지 확인하면 DSE가 설치되었다는 것을 의미합니다.

노드를 지우고 처음부터 스키마를 시작하려면 노드를 중지하고/system/schema_ * 폴더를 제거한 다음 노드를 시작할 수 있습니다. 시작될 때 스키마가 없습니다. 이전에 가지고 있던 키 스페이스/컬럼 패밀리를 다시 작성하면 디스크에서 읽을 수 있습니다.