Cassandra 설치
Cassandra 설치
Apache Cassandra는 여러 Linux 배포판에 설치할 수 있어요:
- AlmaLinux
- Amazon Linux(Amazon Machine Images, AMI)
- Debian
- RedHat Enterprise Linux (RHEL)
- SUSE Enterprise Linux
- Ubuntu
이 목록이 운영체제 플랫폼의 전체 목록은 아니며, 어떤 것을 써야 한다고 강제하는 것도 아니에요. 다만 덜 대중적인 Linux 배포판을 쓴다면 철저한 테스트를 수행하는 것이 좋습니다. 이전 버전의 Linux에 배포하는 것은 그 이전 배포판을 프로덕션 환경에서 사용해 본 경험이 없다면 권장되지 않아요.
출처: 문서
본문
사전 요구 사항 (Prerequisites)
- 다음 위치 중 하나에서 최신 버전의 Java 11 또는 Java 17 설치:
- Oracle Java Standard Edition 11 Archived Version
- Oracle Java Standard Edition 17
- OpenJDK 11
- OpenJDK 17
- 설치된 Java 버전 확인. 예를 들어:
$ java -version
openjdk version "11.0.20" 2023-07-18
OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)
OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
- CQL 셸
cqlsh를 사용하려면 최신 버전의 Python 3.8-3.13 설치.
올바른 Python 버전이 설치되어 있는지 확인하려면 python --version을 입력하세요.
Python 2.7 지원은 더 이상 사용되지 않습니다(deprecated).
설치 방법 선택
Cassandra를 설치하는 흔한 방법은 세 가지예요:
- Docker 이미지
- Tarball 바이너리 파일
- 패키지 설치(RPM, YUM)
현재 Docker를 사용하고 있다면 Docker 이미지 설치는 간단해요. Mac용 Docker Desktop, Windows용 Docker Desktop을 설치하거나 Linux에 docker를 설치해야 합니다. Docker Hub에서 적절한 이미지를 당겨온 뒤 docker run 명령으로 Cassandra를 시작하세요.
많은 사용자에게 바이너리 tarball 설치도 간단한 선택이에요. tarball은 모든 내용을 단일 위치에 풀어내고, 바이너리와 구성 파일이 각각의 서브디렉터리에 위치합니다. tarball 설치의 가장 확실한 장점은 루트 권한이 필요 없고 어떤 Linux 배포판에도 설치할 수 있다는 점이에요.
패키지 설치는 루트 권한이 필요하며 프로덕션 설치에 가장 적합해요. YUM으로 Cassandra를 설치하고 싶다면 CentOS와 RHEL 기반 배포판에 RPM 빌드를 설치하세요. APT로 Cassandra를 설치하고 싶다면 Ubuntu와 기타 Debian 기반 배포판에 Debian 빌드를 설치하세요.
YUM과 APT 방식 모두 루트 권한이 필요하며 바이너리와 구성 파일을 cassandra OS 사용자로 설치한다는 점을 유의하세요.
Docker로 설치
- Docker 이미지 당겨오기. 최신 이미지는 다음과 같이 사용:
docker pull cassandra:latest
이 docker pull 명령은 Dockerhub에서 사용 가능한 공식 Docker Apache Cassandra 이미지의 최신 버전을 가져옵니다.
docker run명령으로 Cassandra 시작:
docker run --name cass_cluster cassandra:latest
--name 옵션은 생성되는 Cassandra 클러스터의 이름이에요. 이 예제는 cass_cluster라는 이름을 사용합니다.
- 생성된 Cassandra 노드와 상호작용하기 위해 CQL 셸
cqlsh시작:
docker exec -it cass_cluster cqlsh
tarball 파일 설치
- 설치된 Java 버전 확인. 예를 들어:
$ java -version
openjdk version "11.0.20" 2023-07-18
OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)
OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
- Apache Cassandra 다운로드 사이트의 미러 중 하나에서 바이너리 tarball을 다운로드. 예를 들어 Cassandra 4.0을 다운로드하려면:
$ curl -OL http://apache.mirror.digitalpacific.com.au/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz
미러는 각 메이저 지원 릴리스의 최신 버전만 호스팅합니다. 이전 버전의 Cassandra를 다운로드하려면 Apache Archives를 방문하세요.
- 선택사항: 다운로드한 tarball의 무결성을 여기의 방법 중 하나로 검증. 예를 들어 GPG로 다운로드한 파일의 해시를 검증하려면:
$ gpg --print-md SHA256 apache-cassandra-4.0.0-bin.tar.gz
apache-cassandra-4.0.0-bin.tar.gz: 28757DDE 589F7041 0F9A6A95 C39EE7E6
CDE63440 E2B06B91 AE6B2006 14FA364D
다운로드 사이트의 SHA256 파일과 서명을 비교:
$ curl -L https://downloads.apache.org/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz.sha256
28757dde589f70410f9a6a95c39ee7e6cde63440e2b06b91ae6b200614fa364d
- tarball 풀기:
$ tar xzvf apache-cassandra-4.0.0-bin.tar.gz
파일은 apache-cassandra-4.0.0/ 디렉터리에 추출됩니다. 이것이 tarball 설치 위치예요.
- tarball 설치 위치에는 스크립트, 바이너리, 유틸리티, 구성, 데이터, 로그 파일을 위한 디렉터리가 있습니다:
<tarball_installation>/
bin/ (1)
conf/ (2)
data/ (3)
doc/
interface/
javadoc/
lib/
logs/ (4)
pylib/
tools/ (5)
1: cassandra, cqlsh, nodetool, SSTable 도구를 실행하는 명령의 위치 2: cassandra.yaml 및 기타 구성 파일의 위치 3: 커밋 로그, 힌트, SSTable의 위치 4: system 및 debug 로그 위치 5: cassandra-stress 도구 위치
- Cassandra 시작:
$ cd apache-cassandra-4.0.0/ && bin/cassandra
이 명령은 인증된 Linux 사용자로 Cassandra를 실행합니다.
- 시작 진행 상황 모니터링:
$ tail -f logs/system.log
system.log에 다음과 같은 항목이 보이면 Cassandra가 준비된 것입니다:
INFO [main] 2019-12-17 03:03:37,526 Server.java:156 - Starting listening for CQL clients on localhost/127.0.0.1:9042 (unencrypted)...
구성 정보는 configuring Cassandra를 참고하세요.
- Cassandra 상태 확인:
$ bin/nodetool status
출력의 status 컬럼은 "Up/Normal"을 뜻하는 UN을 보고해야 해요. 또는 다음으로 데이터베이스에 연결할 수도 있습니다:
$ bin/cqlsh
Debian 패키지로 설치
- 설치된 Java 버전 확인. 예를 들어:
$ java -version
openjdk version "11.0.20" 2023-07-18
OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)
OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
- Cassandra의 Apache 저장소를
cassandra.sources.list파일에 추가. 최신 메이저 버전은 {50_version}이고 해당 배포판 이름은 50x("x" 접미사 포함)입니다. 이전 릴리스에는 다음을 사용:- C* {50_version} 시리즈용 50x
- C* {41_version} 시리즈용 41x
- C* 4.0 시리즈용 40x
예를 들어 버전 {50_version}(50x)의 저장소를 추가하려면:
$ echo "deb [signed-by=/etc/apt/keyrings/apache-cassandra.asc] https://debian.cassandra.apache.org 50x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
deb https://debian.cassandra.apache.org 50x main
- 서버의 신뢰 키 목록에 Apache Cassandra 저장소 키를 추가:
$ curl -o /etc/apt/keyrings/apache-cassandra.asc https://downloads.apache.org/cassandra/KEYS
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 266k 100 266k 0 0 320k 0 --:--:-- --:--:-- --:--:-- 320k
OK
- 소스에서 패키지 인덱스 업데이트:
$ sudo apt-get update
- APT로 Cassandra 설치:
$ sudo apt-get install cassandra
- 시작 진행 상황 모니터링:
$ tail -f logs/system.log
system.log에 다음과 같은 항목이 보이면 Cassandra가 준비된 것입니다:
INFO [main] 2019-12-17 03:03:37,526 Server.java:156 - Starting listening for CQL clients on localhost/127.0.0.1:9042 (unencrypted)...
구성 정보는 configuring Cassandra를 참고하세요.
- Cassandra 상태 확인:
$ nodetool status
출력의 status 컬럼은 "Up/Normal"을 뜻하는 UN을 보고해야 하며, 다음으로 데이터베이스에 연결할 수도 있어요:
$ cqlsh
RPM 패키지로 설치
- 설치된 Java 버전 확인. 예를 들어:
$ java -version
openjdk version "11.0.20" 2023-07-18
OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)
OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
- Cassandra의 Apache 저장소를 파일
/etc/yum.repos.d/cassandra.repo에 추가(root 사용자로). 최신 메이저 버전은 {50_version}이고 해당 배포판 이름은 50x("x" 접미사 포함)입니다. 이전 릴리스에는 다음을 사용:- C* {50_version} 시리즈용 50x
- C* {41_version} 시리즈용 41x
- C* 4.0 시리즈용 40x
예를 들어 버전 {50_version}(50x)의 저장소를 추가하려면:
[cassandra]
name=Apache Cassandra
baseurl=https://redhat.cassandra.apache.org/42x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
- 소스에서 패키지 인덱스 업데이트:
$ sudo yum update
- YUM으로 Cassandra 설치:
$ sudo yum install cassandra
설치의 일부로 새 Linux 사용자 cassandra가 생성됩니다. Cassandra 서비스도 이 사용자로 실행됩니다.
- Cassandra 서비스 시작:
$ sudo service cassandra start
- 시작 진행 상황 모니터링:
$ tail -f logs/system.log
system.log에 다음과 같은 항목이 보이면 Cassandra가 준비된 것입니다:
INFO [main] 2019-12-17 03:03:37,526 Server.java:156 - Starting listening for CQL clients on localhost/127.0.0.1:9042 (unencrypted)...
구성 정보는 configuring Cassandra를 참고하세요.
- Cassandra 상태 확인:
$ nodetool status
출력의 status 컬럼은 "Up/Normal"을 뜻하는 UN을 보고해야 하며, 다음으로 데이터베이스에 연결할 수도 있어요:
$ cqlsh
추가 설치 정보
설치 문제에 대한 도움은 Troubleshooting 섹션을 참고하세요.