2014-03-19 2 views
4

단일 노드로 현재 우분투 서버에서 Cassandra 서비스가 실행 중입니다. 나는 3 노드를 가진 링 클러스터로 만들어 멀티 노드 클러스터의 느낌을 모두 같은 서버에 넣고 싶습니다. 이 링크 https://www.youtube.com/watch?v=oHMJrhMtv3c의 단계를 따르면서 이미 실행중인 cassandra 서비스를 중지하지 않고 새로운 클러스터를 만들려고했습니다. 그러나 그것은 주소를 던져 버렸습니다 : java.net.BindException : 주소가 이미 사용 중입니다. 그래서 나는 종자 ip를 이미 ipand 주소로 변경하려고 시도했는데 전경에서 두 번째 캐산드라 서비스를 실행하려고했습니다. 이번에는 java.lang.RuntimeException을 던졌습니다 : IP 포트에 쓰레드 소켓을 만들 수 없습니다. 동일한 서버의 이미 실행중인 단일 노드 클러스터에 노드를 추가하는 방법을 알려주십시오.단일 우분투 서버에 cassandra 다중 노드 클러스터 설정

답변

4

단일 시스템에서 다중 노드 클러스터를 설정하는 가장 쉬운 방법은 CCM을 사용하는 것입니다. 현재 노드에서 동일한 포트 집합을 모두 바인딩하려고하면 문제가 발생합니다. CCM은 당신을 위해이 문제를 해결할 것이다 자동 증가 포트 요법 ...

https://github.com/pcmanus/ccm

5

만큼 그들은 모두 해결 다른 IP 주소가 같은 우분투 시스템에 여러 카산드라 인스턴스를 실행하는 것은 매우 쉽습니다 로컬 호스트 전체 127.0.0.0/8 주소 블록은 루프백 목적으로 예약되어 있으므로 주소 (127.0.0.1에서 127.255.255.254)로 전송 된 모든 패킷은 되돌아옵니다.

  • 주소가 제대로 해석되는지 확인하려면 ping을 사용하십시오.
  • 두 개 (이상)의 카산드라 인스턴스를 다른 폴더에 배치하십시오.

편집 cassandra.yaml 및 카산드라의 지정된 인스턴스에 고유 한 위치에

  • 다양한 파일 위치를 교체합니다.
  • localhost과 같이 해당 인스턴스에 부여한 IP 주소 (예 : 127.0.0.2).
  • 사용 SimpleSeedProvider 및 것은 클러스터를 만들기 위해 종자 목록에 다른 모든 카산드라 인스턴스의 주소를 넣어 (같은 - seeds: "127.0.0.2","127.0.0.3"는 에게
  • 는 포트 번호를 변경하지 마십시오 도움이되지 아니라 필요합니다.

편집 cassandra-env.sh 찾을JMX_PORT 속성은 그렇지 않은 경우가 있기 때문에이 포트에 충돌의 함께 실행할 수 없습니다. 설정하고 그것을 카산드라의 모든 인스턴스에 대해 다른 값 (다른 포트를) 제공된다.

    가 시작
  • 인스턴스를 ./cassandra 시작 스크립트 (하나의 bash 스크립트를 작성할 수 있습니다.
  • ./nodetool 상태로 토폴로지를 확인하십시오. ! 두 노드의 경우, 예를 들어, 출력이

    Datacenter: datacenter1 
    ======================= 
    Status=Up/Down 
    |/ State=Normal/Leaving/Joining/Moving 
    -- Address Load  Tokens Owns (effective) Host ID        Rack 
    UN 127.0.0.1 61.97 KB 256  100.0%   6c04e202-8f24-4f17-b430-0154c1512316 rack1 
    UN 127.0.0.2 105.68 KB 256  100.0%   ca3073ee-451c-4cef-97ee-d312784648bb rack1 
    
+0

완벽한 해답과 같이합니다 .. 언급 한 사소한 일이 씨는 다음과 같이 작성해야한다는 것입니다 - 씨 : "127.0.0.2,127.0.0.3 " –

관련 문제