2014-07-08 2 views
3

Datastax 명령을 따라 EC2에서 클러스터를 설정했습니다. http://www.datastax.com/documentation/cassandra/2.0/cassandra/install/installAMILaunch.html 모두 정상적으로 작동하고 클러스터가 생성되었습니다.EC2에서 datastax cassandra 클러스터 - 노드가 서로를 어떻게 찾습니까?

내 질문은 어떻게됩니까? 인스턴스가 서로 IP를 어떻게 알 수 있습니까? 처음에는 메타 데이터에서 읽은 것으로 가정했지만 정보를 찾지 못했습니다.

답변

1

카산드라는 "시드 노드"를 사용하여 모든 노드의 주소를 포함하여 전체 클러스터에 노드 토폴로지 정보를 전파합니다. DataStax documentation에 따르면 AMI는 모든 시드 노드를 설정합니다. AMI는 각 노드의 cassandra.yaml 파일을 수정하여 해당 시드 노드를 구성 할 것으로 예상됩니다.

편집 :

당신이 당신의 클러스터를 만들 때 각 노드에서 cassandra.yaml 파일을 구성하거나 AMI는 대신에 그것을 않기 때문에 그것은 시드 노드를 발견

. 각 노드가 올라 오면 시드 노드의 목록을 보려면 cassandra.yaml을보고 연락하여 노드가 알고있는 모든 노드의 목록을 제공합니다. 다시 말해, 연락 한 모든 노드. 새 노드가 결합되면 존재가 클러스터를 통해 전달되고 시드 노드는 마스터 목록을 유지합니다.

+0

내 질문은 각 노드가 시드 노드를 포함한 다른 노드를 어떻게 발견했는지입니다. – tzach

1

리플렉터는 예약 ID별로 각 서버 및 그룹에서 요청을받는 중앙 집중식 데이터 서비스입니다. 시간이 지나면 각 구성원은 다른 구성원의 IP를 쿼리하고 가져올 수 있습니다.

"리플렉터는 시작되는 DSE/C 클러스터에있는 IP를 추적하는 데 사용됩니다. 리플렉터는 내부 IP 주소, 공개 DNS, 예약 ID 및 추적 할 클러스터 이름을 수신합니다 이 데이터는 SQLite 데이터베이스에 저장됩니다 .5 분 동안 사용하지 않으면 PHP 파일에 대한 다른 요청이 보내지면 데이터베이스는 지워지고 충돌을 피하기 위해 가능한 한 최신 IP 목록을 유지하기 위해 새로 시작됩니다 당신의 사생활을 지키십시오. "

반사경에 대한 호출은 기본적으로 https://github.com/riptano/ComboAMI/blob/2.5/ds2_configure.py#L445

0

에, 당신이 그들의 연결에 대한 몇 가지 TCP 포트를 열어입니다. 7000 포트는 내부 노드 통신에 사용됩니다. 9042는 CQL 기본 전송에 사용됩니다.

따라서 명령 줄에서이 포트를 확인할 수 있습니다. 모두 개방해야합니다.

관련 문제