4 개 노드 클러스터가 있고 모든 노드를 이전 버전에서 Cassandra 1.2.8로 업그레이드했습니다. 클러스터에있는 전체 데이터의 크기는 8GB입니다. 이제 다운 타임없이 클러스터의 모든 4 노드에서 vNode를 활성화해야합니다. 어떻게해야합니까?Cassandra 1.2.8에서 vNodes 활성화
답변
TL; 는 config가
을 편집 한 후
없음 당신에게 need to restart servers 문제 v- 노드를 가능하면 많은 양의 데이터가 (워드 프로세서는 '이동 nodetool'고전 유사한 맥락에서 말을 무작위로 재분배 의미이다 에서
conf/cassandra.yaml
당신이 initial_token
매개 변수를 주석 처리해야하고, num_tokens
매개 변수 (기본값 256으로 내가 믿는)을 가능하게 할 것이다. 각 노드에 대해이 작업을 수행합니다. 그런 다음 각 노드에서 카산드라 서비스를 다시 시작해야합니다. 그리고 d를 기다려라. 클러스터 전체에 재배포 할 수 있습니다. 8GB는 너무 오래 걸리지 않아야합니다 (노드가 모두 동일한 클러스터에있는 경우). 읽기 요청은 계속 작동하지만 데이터 재분배가 완료 될 때까지 성능이 저하 될 수 있습니다.
편집 : 클러스터의
- 서비스 해제 두 개의 노드 : 여기에 데이터를 마이그레이션 할 수있는 잠재적 인 전략이다. 토큰 공간은 다른 두 노드 사이에 50-50 분배되어야합니다.
- 해제 된 두 노드에서 기존 데이터를 제거한 다음 클러스터 이름이 다른 및
num_token
매개 변수가 활성화 된 Cassandra 데몬을 다시 시작하십시오. - 이전 클러스터의 8GB 데이터를 새 클러스터로 마이그레이션하십시오. 이를 달성하기 위해 파이썬으로 빠른 스크립트를 작성할 수 있습니다. 데이터 양이 충분하기 때문에 시간이 오래 걸리지 않아야합니다.
- 데이터가 새 클러스터에서 마이그레이션 된 후에는 이전 클러스터에서 두 개의 이전 노드를 폐기하십시오. 데이터를 제거하고 새 클러스터 이름 및
num_tokens
매개 변수를 사용하여 Cassandra를 다시 시작하십시오. 부트 스트랩이 발생하고 새 클러스터의 기존 노드 두 개에서 데이터가 스트리밍됩니다. 한 번에 하나의 노드 만 부트 스트랩하는 것이 바람직합니다.
이러한 단계를 통해 서비스가 완전히 중단 된 상황에 직면해서는 안됩니다. 얼마 동안 용량이 줄어들 것입니다.하지만 8GB는 대용량 데이터가 아니기 때문에 신속하게이를 수행 할 수 있습니다.
Nikhil이 말했듯이 num_tokens를 늘리고 각 노드를 다시 시작해야합니다. 다운 타임없이 한 번에 하나씩 수행 할 수 있습니다.
그러나 num_tokens를 늘려도 데이터가 재배포되지 않으므로 실제로 vnode를 사용하지 않습니다. 각 노드를 폐기하고 부트 스트래핑 (일시적으로 클러스터가 모든 데이터를 소유하는 한 노드와 극단적으로 불균형을 맺게 됨)을 통해 또는 셔플을 통해 수동으로 재배포해야합니다 (문제가되는 Lyuben 링크에 설명되어 있음). 새 데이터 센터를 만드는 것처럼 하드웨어를 임시로 복제하십시오. 후자는 내가 아는 신뢰할 수있는 유일한 방법이지만 여분의 하드웨어가 필요합니다.
- 1. 카산드라 vnodes 성능 오버 헤드 및 vnode 수 변경
- 2. ssl이 활성화 된 상태에서 cassandra 1.2 오류가 발생했습니다.
- 3. Spring 1.2.8에서 Spring 3.1 및 Hibernate 3.1에서 4.0으로의 마이그레이션
- 4. ps auwx와 함께 cassandra 중지 | grep cassandra
- 5. cassandra 1.0.6 버전을 cassandra 1.0.7 버전으로 업그레이드
- 6. cassandra 백업을 다른 cassandra 인스턴스로 복원
- 7. Cassandra 2.0.X의 Cassandra 스토리지 엔진 표현
- 8. Apache Nifi/Cassandra - CSV를 Cassandra 테이블에로드하는 방법
- 9. cassandra : lb를 사용하여 cassandra 클러스터를 연결하는 방법?
- 10. Cassandra Timestampe
- 11. Cassandra Batch_mutate()
- 12. Cassandra AssertionError
- 13. Eclipse와 Cassandra
- 14. Cassandra NoHostAvailableException
- 15. Ganglia + Cassandra
- 16. Grafana & Cassandra
- 17. Cassandra Rainbird
- 18. Cassandra get_range_slice
- 19. Cassandra MemtableColumnCount
- 20. 활성화 활성화 필요
- 21. 최대 시간에 Cassandra PasswordAuthenticator를 활성화하십시오.
- 22. Cassandra : 매달려있는 노드 도구 복구
- 23. Cassandra 노드 및 Cassandra 클라이언트와 동일한 컴퓨터 사용
- 24. Cassandra 1.2 데이터를 Cassandra 1.1로 마이그레이션 할 수있는 방법이 있습니까?
- 25. Java에서 Embedded Cassandra Server를 사용하여 Cassandra-Spark 작업을 테스트하는 예
- 26. 어떻게 cassandra-pdo (cassandra pdo driver)를 만들 수 있습니까?
- 27. cassandra 소스 코드에서 cassandra-jar를 만드는 방법은 무엇입니까?
- 28. django에서 django-cassandra-engine을 사용하지 않고 django에 Cassandra DB를 설치하십시오.
- 29. Fluent Cassandra vs Aquiles?
- 30. cassandra 명령 줄
num_tokens가 증가해도 데이터가 재분배되지 않습니다. – Richard
@ 리차드 맞습니다. 내 잘못이야. – Nikhil