본문 바로가기

Database/NoSQL

[NoSQL] Cassandra 실습 - Docker

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] Container IP 확인하기

% 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

04. [Blog] https://velog.io/@jkijki12/Cassandra-2-%EB%8F%84%EC%BB%A4%EB%A1%9C-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EA%B5%AC%EC%B6%95%ED%95%B4%EB%B3%B4%EA%B8%B0

 

'Database > NoSQL' 카테고리의 다른 글

[NoSQL] Cassandra 실습 - Docker Compose  (0) 2024.05.22
[NoSQL] Cassandra 개념 및 특징  (0) 2024.05.13