카산드라를 도커에 설치하기 위한 방법은
대표적으로 도커와 도커 컴포즈 방법이 있다.
하나씩 띄우기에는 도커로 간편하게 띄울 순 있지만,
카산드라를 멀티 노드로 구축하거나, 카산드라 외에 다른 어플리케이션과 함께 설치하고 관리해야하는 경우에는
도커 컴포즈 파일로 한꺼번에 띄우는 방법을 사용할 수 있다.
도커 컴포즈는 사전에 설치 되어 있어야한다.
도커 컴포즈를 실행시키기전에 아래 yml 파일 구성을 먼저 확인한다.
version: "3.8"
services:
cassandra-0:
image: cassandra:latest
restart: always
ports:
- 7000:7000
- 9042:9042
volumes:
- /home/cassandra-node-0/commitlog:/var/lib/cassandra/commitlog
- /home/cassandra-node-0/hints:/var/lib/cassandra/hints
- /home/cassandra-node-0/data:/var/lib/cassandra/data
- /home/cassandra-node-0/saved_caches:/var/lib/cassandra/saved_caches
- /home/cassandra-node-0/logs:/var/log/cassandra
environment:
- CASSANDRA_SEEDS=cassandra-0
- CASSANDRA_CLUSTER_NAME=cluster
- CASSANDRA_NUM_TOKENS=8
- CASSANDRA_DC=dc1
- CASSANDRA_RACK=rack0
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- MAX_HEAP_SIZE=8G
- HEAP_NEWSIZE=200M
cassandra-1:
image: cassandra:latest
restart: always
ports:
- 1700:7000
- 19042:9042
volumes:
- /home/cassandra-node-1/data:/var/lib/cassandra/data
- /home/cassandra-node-1/commitlog:/var/lib/cassandra/commitlog
- /home/cassandra-node-1/hints:/var/lib/cassandra/hints
- /home/cassandra-node-1/saved_caches:/var/lib/cassandra/saved_caches
- /home/cassandra-node-1/logs:/var/log/cassandra
environment:
- CASSANDRA_SEEDS=cassandra-0
- CASSANDRA_CLUSTER_NAME=cluster
- CASSANDRA_NUM_TOKENS=8
- CASSANDRA_DC=dc1
- CASSANDRA_RACK=rack0
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- MAX_HEAP_SIZE=8G
- HEAP_NEWSIZE=200M
cassandra-2:
image: cassandra:latest
restart: always
ports:
- 27000:7000
- 29042:9042
volumes:
- /home/cassandra-node-2/data:/var/lib/cassandra/data
- /home/cassandra-node-2/commitlog:/var/lib/cassandra/commitlog
- /home/cassandra-node-2/hints:/var/lib/cassandra/hints
- /home/cassandra-node-2/saved_caches:/var/lib/cassandra/saved_caches
- /home/cassandra-node-2/logs:/var/log/cassandra
environment:
- CASSANDRA_SEEDS=cassandra-0
- CASSANDRA_CLUSTER_NAME=cluster
- CASSANDRA_NUM_TOKENS=8
- CASSANDRA_DC=dc1
- CASSANDRA_RACK=rack0
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- MAX_HEAP_SIZE=8G
- HEAP_NEWSIZE=200M
옵션 설명
image
카산드라의 버전은 가장 최신 것으로 사용한다. latest tag 부분을 변경하여 특정 버전의 카산드라 버전을 사용할수도 있다.
restart: always
시스템 시작시 항상 해당 어플리케이션이 자동으로 실행된다.
port
도커에서 외부로 열어줄 port를 설정한다.
volumes
도커 내부에 저장하는 경로를 외부에 연동시킨다.
enviroment
카산드라 관련 옵션 셋팅으로 docker-compose.yml 파일에서 관리한다.
network
위의 예시는 도커에서 사용하는 기본 IP를 자동으로 할당 받도록 설정하였다.
network 옵션을 통해 특정 IP할당할수도 있다.
참고 : [Programming/Server] - [Docker] docker-compose 특정 ip 설정
특정 IP를 할당하고, 실행하는 방법에 대해선 github를 참고하면 된다.
https://github.com/logengineer/cassandra-docker-compose
'Database > Cassandra' 카테고리의 다른 글
[Cassandra][java] PreparedStatement vs Statement (0) | 2020.05.20 |
---|---|
[Cassandra] select 쿼리 작성시 참고사항 (0) | 2020.05.14 |
[Cassandra] 테이블 설계시 확인 사항 (0) | 2020.05.05 |