2013-01-23 2 views
6

우분투에서 3 개의 카산드라 노드 (실제로 클러스터)를 실행할 수 있습니까? VMWare/VirtualBox의 인스턴스를 3 개 만들고 싶지는 않지만 대신 각 포트를 수신 대기하도록 각 cassandra 노드를 구성하십시오. 하나의 카산드라 설치로 가능합니까?동일한 컴퓨터에서 여러 cassandra 노드 (클러스터)를 실행 하시겠습니까?

내 생각에 나온 솔루션은 3 개의 로컬 카산드라 설치를 가지고 각각의 카산드라. yaml을 독립적으로 구성하는 것이지만 실제로는 설치된 카산드라 구성 파일로이를 달성하는 것을 선호합니다.

분명히 테스트 목적으로 만 이러한 구성이 필요합니다. GitHub의에

+0

쉽게 구성 할 수없는 포트를 할당하면이 작업을 수행 할 수 없습니다. 그러나 로컬 호스트 (127.0.0.1, 127.0.0.2 등)의 동의어 주소를 사용하여이 작업을 수행하는 것은 매우 쉽습니다. 이 접근법은 http://stackoverflow.com/questions/22513979/setting-up-cassandra-multi-node-cluster-on-a-single-ubuntu-server/25348301#25348301 – h22

답변

4

난 당신이 프로그램의 3 복사본이 있다면 그것은 가능한 것 같아요, 모든 포트는 다른, 당신은에서 해당 포트를 제외해야 할 것 3 개 가지 구성 가능한 연결 소켓.

편집 나는 downvotes를 이해하지 못합니다. 이것은 실제로 가장 간단한 방법이며, 한 세트의 바이너리를 가지고 각 노드에 대한 conf 및 yaml 파일 집합을 만든 다음 원하는 각 로컬 노드에 대해 하나의 시작 스크립트를 사용합니다.

예 : 7199의 시스템 1, 7200의 시스템 2, 7201의 시스템 3 등. 로컬 호스트 IP, 127.0.0.2, .3, .4 등의 별명을 사용하십시오.

Nodetool 링은 의도 한대로 작동하고 클러스터를 표시하며 모든 루트 IP가 동일합니다.

+0

에 대한 대답에 설명되어 있습니다. 아마도 하향 투표 수는 모든 포트를 쉽게 이동할 수있는 것은 아니기 때문에 일부는 하드 코드 된 것입니다. 카산드라의 기능보다 더 많은 버그가 있지만 특별한 해결 방법이 필요합니다. – h22

0

JMX 라이브러리의 포트 충돌에 문제가있는 것 같습니다. jamm이 맞습니까? 이전에는 yaml을 통해 구성되지 않은 것으로 보였으 나 launch .sh 스크립트에서는 실행 스크립트에서 작성된 JVM 옵션 인 것처럼 보이지 않도록 설정할 수 있습니다.

서버 인스턴스에 대해 다른 루프백 주소를 사용하여 트릭을 만들었으므로 같은 포트와 공존 할 수 있지만 방해 문제가 발생했습니다. 그것은 Packt cassandra 고성능 요리 책에서 나온 것입니다.

1.2.5 이상에서는 대략적으로이 작업을 성공적으로 수행 할 수 없었습니다.

+0

이것은 각 Cassandra 인스턴스에 대해 다른 JMX 포트를 설정하면 쉽게 해결할 수 있습니다. 이 포트는 conf/cassandra-env.sh에 정의되어 있으며 편집하면 다시 작동합니다. – h22

관련 문제