Docker 위에서 Cassandra 분산 환경을 설정해보고 이를 정리합니다.
환경 구현에 중점을 맞춘 글입니다.
Cassandra의 Configuration 설정은 Docs에서 확인할 수 있습니다.
Cassandra Node 생성하기
1.1. Pull Cassandra image
# lastest가 아닌 특정 버전 지정 가능
% docker pull cassandra:latest
#가져온 이미지 확인
% docker images
cassandra latest 05746f945aef 7 weeks ago 354MB
1.2. Node 0 (Seed node) 생성
Cassandra configuration 설정은 run 명령어를 실행할때 가능합니다.
% docker run --name test-node0 \
-p 7001:7001 -p 7002:7002 -p 9042:9042 -p 9160:9160 \
-e CASSANDRA_CLUSTER_NAME=BoardCluster \
-e CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch \
-e CASSANDRA_DC=datacenter1 \
-d cassandra:latest
1.3. Seed node로 와의 통신을 위해 IPAddress를 확인
아래 명령어의 배경은 아래 글에서 확인할 수 있습니다.
% docker inspect --format='{{ .NetworkSettings.IPAddress}}' test-node0
172.17.0.2
1.4. Seed node를 바라보는 test-node1 생성
% docker run --name test-node1 \
-p 17001:7001 -p 17002:7002 -p 19042:9042 -p 19160:9160 \
-e CASSANDRA_SEED="$(docker inspect --format='{{ .NetworkSettings.IPAddress}}' test-node0)" \
-e CASSANDRA_CLUSTER=BoardCluster \
-e CASSANDRA_ENDPOINT_SNITCH=GosspingPropertyFileSnitch \
-e CASSANDRA_DC=datacenter1 \
-d cassandra:latest
1.5. Seed node를 바라보는 test-node2 생성
% docker run --name test-node2 \
-p 27001:7001 -p 27002:7002 -p 29042:9042 -p 29160:9160 \
-e CASSANDRA_SEED="$(docker inspect --format='{{ .NetworkSettings.IPAddress}}' test-node0)" \
-e CASSANDRA_CLUSTER=BoardCluster \
-e CASSANDRA_ENDPOINT_SNITCH=GosspingPropertyFileSnitch \
-e CASSANDRA_DC=datacenter1 \
-d cassandra:latest
Docker 명령어를 통해서 카산드라 컨테이너를 생성해보았습니다.
다만, 위 간단한 예제를 입력하는 와중에도 Configuration 옵션을 입력하는 과정에서 에러가 발생하였습니다.
이에 yaml 파일을 작성하고 도커 컴포즈로 카산드라 노드를 생성하는 과정을 정리하겠습니다.
Ref.
01. [Docs] https://hub.docker.com/_/cassandra
02. [Blog] https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=flowerdances&logNo=221213406546
03. [Blog] https://log-laboratory.tistory.com/173
'Database > NoSQL' 카테고리의 다른 글
[NoSQL] Cassandra 실습 - Docker Compose (0) | 2024.05.22 |
---|---|
[NoSQL] Cassandra 개념 및 특징 (0) | 2024.05.13 |