2013-07-02 3 views
1

Oracle의 64 비트 JVM 버전 1.7.0_10을 사용하는 Amazon Web Service VPC에서 cassandra 1.2의 6 노드 클러스터를 실행 중입니다.cassandra 1.2 원격 노드에 연결을 시도 할 때 '연결에 실패했습니다.'

노드 중 하나 (예 : 10.0.12.200)에 로그온 할 때 nodetool -h 10.0.12.200 status을 정상적으로 실행할 수 있습니다.

그러나 동일한 터미널에서 클러스터 (10.0.32.153)의 다른 IP 주소를 사용하려고하면 Failed to connect to '10.0.32.153:7199: Connection refused'이 표시됩니다.

10.0.32.153 노드에서 다음과 같은 확인을 위해 연결을 시도하고 있습니다. 10.0.12.200에서

  • 나는 telnet 10.0.32.153 7199를 실행할 수 있습니다 내가 연결을 얻을, 그래서 나는 경우가 10.0.32.153에 포트 7199.

  • 에 보안 그룹/방화벽 문제가 나타나지 않습니다 내가

    tcp 0 0 0.0.0.0:7199 0.0.0.0:* LISTEN

    를 참조 netstat -ant|grep 7199 실행

    그래서 카산드라는 포트에서 수신 한 것으로 나타났습니다 않습니다

  • 10.0.32.153에 cassandra-env.sh 파일은 활성 JMX의 JVM_OPTS을 모두 가지고

    -Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

이 문제 동안 해결하는 동안 내가 본 어둠 속에서 유일한 샷 인터 웹을 검색하면 다음과 같은 설정하는 것입니다 :

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=10.0.32.153"

을하지만이 작업을 수행 할 때 난 응답을하지 않습니다. 그냥 달려있다.

모든 안내가 크게 감사하겠습니다.

+1

는 당신이 역 DNS가 설정 한 마십시오 포함하도록 구성하는 것입니다? JMX가있을 때 가장 행복해 보입니다. 따라서 IP는 동일한 IP로 다시 확인되는 호스트 이름으로 해석됩니다. – Richard

+0

역방향 DNS가 AWS VPC의 개인 서브넷 내에서 사용 가능하다고 생각하지 않습니다. – jspyeatt

답변

3

문제가 방화벽/보안 그룹 문제가되었습니다. jmx 포트 7199가 사용되는 것은 사실이지만, 분명히 rmi에는 다른 포트가 무작위로 사용됩니다.

Cassandra port usage - how are the ports used? 그래서 해결책은 방화벽을 열고 cassandra-env.sh이

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<ip>