반응형

'개발/Cassandra'에 해당되는 글 3건

반응형

Ubuntu 환경에서 Package 설치를 기준으로 구성해볼 예정이다. (버전은 3.10)


1. 패키지 등록 및 설치

# apt-get source list 및 key 등록
$ echo "deb http://www.apache.org/dist/cassandra/debian 310x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
$ curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
$ apt-get update

# 설치
$ apt-get install -y cassandra


2. 설정

제대로된 운영을 하려면 시스템에 맞게 건드려줘야 되는 항목들이 많기 때문에 클러스터 구성에 대한 최소한의 설정만 설명할 예정이다.

기본적으로 Consist-Hashing 방식으로 노드를 분산하며, gossip protocol을 이용하여 서로 노드간 alive 체크를 하기 때문에,

별도의 마스터가 없다는게 카산드라 클러스터 구성의 컨셉이다.

### /etc/cassandra.yaml
cluster_name : test_cluster         # 클러스터명 (클러스터가 여러개로 구성된 경우에 식별자로 사용되는 듯)
seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
      - seeds: 192.168.0.10  # 최초 초기화 시 leader 역할을 할 노드의 ip를 적어준다. 
                                      # datacenter간에 cluster구성을 해야 하는 경우
                                      # HA효과를 보기위해 datacenter별로 최소 한대씩은 적어주는 것을 권장한다. (콤마 구분)
listen_address: 192.168.0.10     # 현재 노드의 ip 적어준다. (docker구성인 경우 docker의 가상 ip 입력)
broadcast_address: 192.168.0.10 # 현재 노드의 ip 적어준다. (docker구성인 경우 docker가 동작하는 host 머신의 ip 입력)
rpc_address: 0.0.0.0  # rpc 통신을 위해 0.0.0.0을 입력해준다.
broadcast_rpc_address: 192.168.0.10 # broadcast_address와 동일
endpoint_snitch: GossipingPropertyFileSnitch # 클러스터 간 근접도 판단 방법에 대한 옵션으로 
                                                                # 자세한건 http://docs.datastax.com/en/archived/cassandra/2.0/cassandra/architecture/architectureSnitchesAbout_c.html를 참조한다.                                                           


3. 실행

$ service cassandra start
반응형

'개발 > Cassandra' 카테고리의 다른 글

[Cassandra] 3.10 기준 rpc 설정하기  (0) 2017.05.10
[Cassandra] 3.10 기준 Cluster name 변경하기  (0) 2017.05.10
,
반응형

apt-get이나 yum을 이용해서 패키지 설치를 하게 되면, 기본적으로 cassandra는 127.0.0.1로 뜨게되어,

로컬 환경에서밖에 접속을 못하게 된다.


이런 경우, cassandra.yaml을 열어서 rpc가 지원되도록 아래와 같은 설정을 찾아서 변경해주어야 한다.


콜론 뒤에 띄어쓰기가 무조건 한 칸 있어야 에러가 발생하지 않으므로, 설정 변경 간 띄어쓰기에 유의해야 한다.

# /etc/cassandra/cassandra.yaml
start_rpc: true     # default : false
rpc_address: 0.0.0.0  # default: localhost
broadcast_rpc_address: localhost  # 원래 주석처리 되어있던 걸 풀어서 localhost로 맞춰준다.


이렇게 설정해두면, 기본 포트인 9042포트와 Thrift를 이용한 고속 전송(맞는 표현인지 모르겠음;)을 지원하는 9160포트가 동시에 0.0.0.0으로 listening 되게 된다.

반응형

'개발 > Cassandra' 카테고리의 다른 글

[Cassandra] 클러스터 구성  (0) 2017.05.31
[Cassandra] 3.10 기준 Cluster name 변경하기  (0) 2017.05.10
,
반응형

cassandra.yaml에서만 변경하면, 서비스 재시작 시 자동으로 반영해줄거라 생각했지만, 클러스터 명이 다르다는 에러가 발생하게 된다.


이런 경우 설정을 원래대로 원복시키고, cqlsh에 들어가서 직접 쿼리를 날려준 후, 설정 파일을 바꾸어주면 문제가 발생하지 않는다.

cqlsh> UPDATE system.local SET cluster_name = '변경할 클러스터명' where key='local';


반응형

'개발 > Cassandra' 카테고리의 다른 글

[Cassandra] 클러스터 구성  (0) 2017.05.31
[Cassandra] 3.10 기준 rpc 설정하기  (0) 2017.05.10
,
반응형