2016-09-16 8 views
0

복제 계수 2 인 3 노드 클러스터가 있지만 데이터가 모든 3 노드에서 복제되고 있습니다. 키 공간을 만드는 방법은 다음과 같습니다.3 노드 카산드라 클러스터에서 복제 계수를 2로 설정합니다. 그러나 여전히 데이터가 삽입시 모든 3 개의 노드에 복제됩니다.

CREATE KEYSPACE 복제본 = { 'class': 'SimpleStrategy', 'replication_factor': 2};

무엇이 누락 되었습니까?

+0

"3 노드 모두에서 복제되는 중"이라는 것을 어떻게 알 수 있습니까? – Rocherlee

답변

0

데이터 3 이상의 노드를 배포되고, 각 노드는 2 개의 데이터 보유 : 할당 된 파티션에 속하는 데이터 자체의 부분, 및 그 이웃 노드에 속한 데이터.

1

카산드라는 행의 기본 키를 기반으로 데이터를 배포합니다. 모든 테이블은 일반적으로 모든 머신에 배포되며 행을 삽입하면 "두 머신"에만 삽입됩니다 (이 두 머신은 임의가 아니며 nodetool으로 계산할 수 있습니다)

데이터가 기본 키로 분산되는 방식, 파티션을 살펴보십시오. Cassandra Partitioners

+0

** "임의의 두 기계"**가 잘못되었습니다. RF = 2 ** – xmas79

+0

을 설정했기 때문에 ** 두 대의 기계 여야합니다. 죄송 합니다만 강조한 두 문장의 차이점을 이해하지 못합니다. 그들은 단지 (적어도 atleast) – Sreekar

+0

예, 나는 당신이 한 줄에 "어떤 두 개의 기계"가 없다는 것을 의미했습니다. 여러분은 행당 정확히 두 개의 잘 알려진 기계를 가지고 있습니다. 오해의 소지가있다. – xmas79

0

해당 키 공간이있는 테이블의 파티션 키에서 실행하십시오. 해당 파티션을 보유하고있는 노드 목록을 가져옵니다. 이 경우 출력을 2 노드로만 가져와야합니다.

$ nodetool getendpoints <keyspace> <table> key