2013-10-05 11 views
1

카산드라 클러스터가 있는데 크기를 조정할 때 처리량을 계산할 때 노드를 추가하고 제거하려고했습니다. 문제는 추가 기능을 실행 한 후 노드 명령을 (또한 내가 nodetool와 정리를 시도했다) 나는이 예외 얻을 수 있기 때문에, 지금이 개 노드를 추가 할 수 없습니다 제거하는 것이있다 :카산드라 노드가 시작되지 않음

java.lang.IllegalStateException: unable to find sufficient sources for streaming range 

와 카산드라 함이 응답을 ... 내가 카산드라가 어떻게 작동하는지 완전히 확신 할 수 없으므로 아무에게도 세부 사항을 제공 할 수 있습니까? (- 지금은 1 seednode, 7 일 개 노드와 2 개 매달려 노드)

답변

1

하면

복제 팩터 내 클러스터 1이고 총 10 개 노드가 :

당신에게

편집 감사 데이터를 삽입 한 다음 복제 계수 (RF)가 너무 낮 으면 클러스터에서 데이터를 영구히 제거하는 노드를 제거합니다. 왜? 왜냐하면 cassandra는 (낮은 RF로 인해) 노드에 데이터를 복사하지 않았고 제거 된 노드는 데이터를 고유하게 저장했기 때문입니다.

문제에 시각적 의견 :

RF = 1 
Each node stores 25% of the data 
Total dataset = [node1, node2, node3, node4] 

우리는 노드 2를 제거하면 낮은 RF 제거 노드 = 데이터 손실을 + 때문에 우리가 지금 전체 데이터의 75 %를 가지고있다. This source은 전체 데이터 세트를 갖기 전에 얼마나 많은 노드를 풀 수있는 간단한 방법입니다.

모든 데이터를 제거하거나 데이터가있는 노드를 다시 도입해야합니다. 내 충고는 복제 요소를 증가시키는 것입니다.

+0

실제로 데이터를 다시 소개하려고하지만 여전히 예외가 발생합니다. 어떤 생각이 드나요? 어쨌든 고마워. – giannis

+0

@giannis 어떻게 소개 했습니까? 할당 된 범위가 원래 데이터와 다르기 때문에 데이터를 다시 삽입하면 작동하지 않습니다. 동일한 물리적 노드를 백업해야하기 때문에 데이터를 저장하고 cassandra는 할당 된 * 범위 *만큼 데이터를 추적합니다. –

+1

토큰 링에 아직 노드가 없거나 제거 된 것 같습니다. Removetoken (아마도 "force"옵션이 필요할 것입니다.) 그러면 테스트를 다시 시작할 수 있습니다. 또는 클러스터를 날려 버리고 다시 시작하십시오. :) – jbellis

관련 문제