2012-12-11 6 views
1

3 개의 다른 시스템에있는 3 노드 카산드라 클러스터를 구성하고 있습니다. 나는 서로 핑 할 수 있고 ssh도 할 수있다. 이 세 대의 컴퓨터에서 cassandra 클러스터를 설정했습니다. 그들이 A, B, C라고하면 A는 씨앗입니다. 여기에서 C는 시드 (A)에 성공적으로 조인하고 조인 로그가 인쇄됩니다. A를 통해 클러스터를 분석 할 때 C가 합류했으며 66.7 %의 소유권을 가짐을 알 수 있습니다. 'A'의 소유권은 33.3 %입니다. (토큰을 똑같이 나누었습니다.) 그러나 노드 B가 클러스터에 가입하지 않았습니다. 오류가 인쇄되지 않습니다. B 및 C의 구성은 listen_address 및 rpc_address를 제외하고는 서로 유사합니다. 이 두 구성 사이의 구성을 확인한 그들은 비슷합니다.하나의 카산드라 노드가 카산드라 클러스터에 합류하지 못했습니다.

이것은 네트워크의 문제 일 가능성이 높습니다. 그렇긴하지만 확실하지 않습니다. 문제는 인쇄되지 않습니다. 내가 여기서 시험해 볼 수있는 것들에 대한 제안? 이것은 꽤 이상하게 보입니다. 일부 포트 문제로 인한 것일 수 있습니까?

+1

B의 'nodetool -h localhost ring'은 무엇입니까? – Wildfire

답변

0

어떤 카산드라 버전을 사용하고 계십니까?

모든 노드를 종료하고 하나씩 시도해보십시오. 1.1.6 이전의 카산드라 (나는 그것이 그 포인트 버전이라고 생각한다)는 노드가 때때로 링에 다시 참여할 수없는 문제가 있었다.

둘째, 모든 노드가 동일한 클러스터 이름과 동일한 시드 노드 세트로 구성되어 있는지 확인하십시오.

+1

우리는 Cassandra 1.1.3을 사용하고 있습니다. 어쨌든, 우리는 그 해결책을 찾았고, 그것은 네트워크 인터페이스와 관련된 문제로 밝혀졌습니다. 각 시스템에는 두 개의 네트워크 인터페이스가 있습니다. 즉. 하나는 192.168.x 범위에, 다른 하나는 10.x 범위에 있습니다. 문제가있는 컴퓨터가 rpc 주소로 10.x IP를 사용하고있는 것으로 나타났습니다. (우리는 IP 매핑을위한 도메인을 가지고 있습니다) 그래서 IP를 변경하면 문제가 해결되었습니다. 0.0.0.0을 rpc_address로 사용 하시겠습니까? –

+0

예 -하지만 표준 조언은 다른 인터페이스에 배치하여 노드 간의 험담이 클라이언트의 많은 양의 트래픽에 부딪치지 않도록하는 것입니다. – Sarge