2012-04-20 2 views
1

글쎄 한 개의 노드 클러스터가 있으며 두 개의 주소 127.0.0.1과 127.0.0.2로 나뉘어 있습니다. 127.0.0.1에 데이터를 삽입하려고하면 Cassandra Client를 사용하십시오. 데이터가 성공적으로 127.0.0.1에 대한 추가 가져옵니다 및 그것을 또한 볼 수 있지만 127.0.0.2 볼 수 연결하려고하면 모든 업데이트를 볼 수 없습니다. 데이터가 없습니다. 나는 지난 번에 그것을 잘 설명 할 수 없었다고 생각합니다. 여기에 두 개의 카산드라를 같은 폴더에있는 카산드라 1과 카산드라 2라는 이름으로 다른 폴더에 복사 한 것입니다. 그에 따라 Cassandra.yaml을 업데이트하십시오.카산드라 클러스터링 단일 노드

1)

cluster_name: 'Test Cluster' 
initial_token: 
data_file_directories: - /Cassandra/1/var/lib/cassandra/data 
commitlog_directory: /Cassandra/1/var/lib/cassandra/commitlog 
saved_caches_directory: /Cassandra/1/var/lib/cassandra/saved_caches 
- seeds: "127.0.0.1,127.0.0.2" 
listen_address: 127.0.0.1 
rpc_address: 127.0.0.1 

2)

cluster_name: 'Test Cluster' 
initial_token: 
data_file_directories: - /Cassandra/2/var/lib/cassandra/data 
commitlog_directory: /Cassandra/2/var/lib/cassandra/commitlog 
saved_caches_directory: /Cassandra/2/var/lib/cassandra/saved_caches 
- seeds: "127.0.0.1,127.0.0.2" 
listen_address: 127.0.0.2 
rpc_address: 127.0.0.2 

다른 사람 설정은 기본 설정하고 난 아무것도 수정하지 않았습니다. 내가 그렇게 defauly 어떤 partioner을 지정한 것 같아요 랜덤하지 않은

CREATE KEYSPACE demo with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = [{replication_factor:2}]; 

: 그럼 사용하여 키 스페이스 및 열 가족을 만들 수 있습니다. 내가 127.0.0.1에 연결하고 데이터를 삽입하려고하면

use demo; 

create column family order with comparator=UTF8Type and key_validation_class=UTF8Type and default_validation_class=UTF8Type and column_metadata=[{column_name: member, validation_class: UTF8Type},{column_name: user, validation_class: UTF8Type, index_type: KEYS},{column_name: instrument, validation_class: UTF8Type},{column_name: price, validation_class: DoubleType}, {column_name: quantity, validation_class: Int32Type},{column_name:datetime, validation_class: DateType}]; 

지금, 나는 데이터가 모두 127.0.0.1와 127.0.0.2에 대한 삽입해야하지만이 사건이 아니라고 보라.

Set orders[KEY][user] = 'ABC' list orders; 

잘못된 것이 있습니까? 작동 가능하게하려면 어떻게해야합니까?

당신이있는 경우 세부적인 예를 들어주십시오. 키 스페이스, 컬럼 패밀리 및 데이터 삽입을 생성하는 동안 나는 뭔가 잘못하고 있다고 생각합니다. 두 개의 노드를 삽입하는 예제가 있다면 위대 할 것입니다.

답변

0

IP를 모두 시드로 사용하고 있습니까? 먼저 부팅 한 단일 IP로 설정하십시오.

"nodetool --host [127.0.0.1 | 127.0.0.2] ring"은 무엇을 말합니다. 너는 커 스터에서 양쪽 ip을 볼 수 있니?

+0

예, IP를 모두 시드로 사용하고 있습니다. INFO 레벨을 DEBUG로 변경하여 둘 다 통신하지만 한 번에 하나의 IP 만 볼 수 있습니다. 둘 다 통신하지 않습니다. – Jone

+0

예, IP를 시드로 사용하고 시드로 단일 IP를 설정하면 두 번째 서버를 실행할 때 예외가 발생합니다. – Jone

1

네이티브 전송에 다른 포트 번호를 부여한 후에도 비슷한 문제가있었습니다. 포트가 동일해야합니다 (기본적으로 9042). 그렇지 않으면 노드가 서로를 찾지 못합니다. IP 주소는 노드 간의 포트 충돌을 방지하기 위해 달라야합니다.

./nodetool status을 사용하여 실제로 두 개의 분리 된 인스턴스가 아닌 클러스터를 실제로 만들 었는지 확인하십시오.

관련 문제