AlmaLinux/Rocky Linux 8에 Apache Cassandra를 설치하는 방법
이 페이지에서
- 전제 조건
- 1단계 - Java 설치
- 2단계 - Apache Cassandra 설치
- 3단계 - Cqlsh 설치
- 4단계 - Cassandra용 Systemd Unit 파일 만들기
- 5단계 - Cassandra 구성
- 5.1 사용자 인증 활성화\n
- 5.1.1 - 관리자 수퍼유저 추가
- 5.2 - 콘솔 구성 파일 편집
- 5.3 - 클러스터 이름 바꾸기
Apache Cassandra는 오픈 소스 NoSQL 분산 데이터베이스 관리 시스템입니다. Cassandra는 데이터가 자동으로 복제되는 노드를 더 추가하여 수평으로 확장할 수 있습니다. 중단 시간 없이 노드를 추가하거나 제거할 수 있습니다. 노드는 클러스터 또는 링으로 논리적으로 구성되고 여러 데이터 센터에 걸쳐 설정되어 고성능 애플리케이션의 속도와 안정성을 향상시킬 수 있습니다.
이 튜토리얼에서는 AlmaLinux 및 Rocky Linux 8 OS에 Apache Cassandra를 설치하는 방법을 배웁니다. 달리 지정하지 않는 한 두 운영 체제의 명령은 동일합니다.
전제 조건
-
A Server running AlmaLinux or Rocky Linux with a minimum of 2GB of RAM.
-
A non-sudo user with root privileges.
-
Everything is updated.
$ sudo dnf update
1단계 - 자바 설치
Apache Cassandra가 작동하려면 Java 8이 필요합니다. 최신 버전의 Cassandra에는 Java 11에 대한 실험적 지원이 포함되어 있지만 자습서에서는 Java 8을 계속 사용할 것입니다.
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Java 설치를 확인합니다.
$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
2단계 - 아파치 카산드라 설치
첫 번째 단계는 Cassandras 공식 저장소를 추가하는 것입니다.
다음 명령을 실행하여 리포지토리 파일
/etc/yum.repos.d/cassandra.repo
를 만들고 세부 정보를 입력합니다.$ sudo tee /etc/yum.repos.d/cassandra.repo <<EOF > [cassandra] > name=Apache Cassandra > baseurl=https://www.apache.org/dist/cassandra/redhat/40x/ > gpgcheck=1 > repo_gpgcheck=1 > gpgkey=https://www.apache.org/dist/cassandra/KEYS > EOF
이제 repo 파일이 생성되었으므로 Cassandra를 설치합니다.
$ sudo dnf install cassandra -y
3단계 - Cqlsh 설치
CQL Shell(cqlsh) 도구를 사용하여 Cassandra와 상호 작용합니다. 이 도구는 Python 2.7 또는 Python 3.6+와 호환됩니다. 튜토리얼에서는 Python 3.8을 사용합니다. 파이썬 3.8을 설치합니다.
$ sudo dnf install python38
Python 3.8을 기본 Python 버전으로 설정합니다.
$ sudo update-alternatives --config python There are 3 programs which provide 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python3.8 Enter to keep the current selection[+], or type selection number: 3
여러 옵션이 표시됩니다. 이 경우 Python 3.8을 기본 버전으로 설정하기 위해 3번을 선택합니다.
Python 설치를 확인합니다.
$ python --version Python 3.8.8
update-alternatives
유틸리티를 사용한 후에는python3
명령을 사용할 필요가 없습니다.pip Python 패키지 관리자를 사용하여 cqlsh를 설치합니다.
$ pip3 install --user cqlsh
cqlsh 설치를 확인합니다.
$ cqlsh --version cqlsh 6.0.0
4단계 - Cassandra용 Systemd Unit 파일 생성
편집을 위해
/etc/systemd/system/cassandra.service
를 만들고 엽니다.$ sudo nano /etc/systemd/system/cassandra.service
다음 코드를 붙여넣습니다.
[Unit] Description=Apache Cassandra After=network.target [Service] PIDFile=/var/run/cassandra/cassandra.pid User=cassandra Group=cassandra ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid Restart=always [Install] WantedBy=multi-user.target
Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.
서비스 데몬을 다시 로드합니다.
$ sudo systemctl daemon-reload
Cassandra 서비스를 활성화하고 시작합니다.
$ sudo systemctl enable cassandra --now
서비스 상태를 확인합니다.
$ sudo systemctl status cassandra ? cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-12-30 11:07:43 UTC; 12s ago Main PID: 4679 (java) Tasks: 48 (limit: 23696) Memory: 1.3G CGroup: /system.slice/cassandra.service ??4679 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256>
nodetool
명령을 사용하여 상태를 확인할 수도 있습니다.$ nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 69.09 KiB 16 100.0% 2fe7ccae-2af9-4841-9bff-bffa29f10dc5 rack1
5단계 - Cassandra 구성
Cassandra에 대한 구성 파일의 기본 위치는
/etc/cassandra
입니다. 로그 및 데이터 디렉토리의 기본 위치는/var/log/cassandra
및/var/lib/cassandra
입니다.힙 크기와 같은 JVM 수준 설정은
/etc/cassandra/conf/cassandra-env.sh
파일을 통해 설정할 수 있습니다. 추가 JVM 명령줄 인수를JVM_OPTS
변수에 전달할 수 있습니다. 인수는 시작할 때 Cassandra에 전달됩니다.5.1 사용자 인증 활성화
사용자 인증을 활성화하려면 먼저
/etc/cassandra/conf/cassandra.yaml
파일을 백업하십시오.$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
편집을 위해
cassandra.yaml
파일을 엽니다.$ sudo nano /etc/cassandra/conf/cassandra.yaml
이 파일에서 다음 매개변수를 찾으십시오.
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
아래와 같이 매개변수 값을 변경합니다.
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
요구 사항에 따라 다른 설정을 구성할 수 있습니다. 주석 처리된 경우 주석 처리를 제거하십시오.
완료되면 Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.
변경된 설정을 활성화하려면 Cassandra를 다시 시작하십시오.
$ sudo systemctl restart cassandra
5.1.1 - 관리자 수퍼유저 추가
이제 인증을 활성화했으므로 사용자를 생성해야 합니다. 이를 위해 Cassandra Command 셸 유틸리티를 사용합니다. 기본 사용자
cassandra
의 자격 증명으로 로그인합니다.$ cqlsh -u cassandra -p cassandra
새 수퍼유저를 만듭니다.
[username]
및[yourpassword]
를 자격 증명으로 바꿉니다.> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
로그 아웃.
> exit
새 수퍼유저 계정으로 다시 로그인합니다.
$ cqlsh -u username -p yourpassword
기본
cassandra
계정에서 상승된 권한을 제거합니다.> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; > REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
수퍼유저 계정에 모든 권한을 부여합니다.
> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
로그 아웃.
> exit
5.2 - 콘솔 구성 파일 편집
Cassandra Shell을 사용자 지정하려는 경우
cqlshrc
파일을 편집하여 수행할 수 있습니다. 파일의 기본 위치는~/.cassandra
디렉터리입니다. 다른 디렉터리에서 로드하려는 경우 실행하는 동안 인수--cqlshrc /customdirectory
를cqlsh
도구에 전달할 수 있습니다.Cassandra Shell과 관련하여 구성할 수 있는 모든 설정이 포함된 샘플 파일은
/etc/cassandra/conf/cqlshrc.sample
에서 찾을 수 있습니다.예제 파일을
~/.cassandra
디렉터리에 복사하고 이름을 바꿉니다.$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
필요한 권한으로
cqlshrc
파일을 업데이트하십시오.$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
편집할 파일을 엽니다.
$ nano ~/.cassandra/cqlshrc
수퍼유저 자격 증명으로 자동 로그인하도록 셸을 구성합니다. 다음 섹션을 찾아 사용자 이름과 비밀번호를 입력합니다.
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
변경하려는 다른 설정을 편집합니다. 일부 설정은
;;
를 사용하여 주석 처리됩니다. 이중 세미콜론을 제거하여 주석을 해제한 다음 변경합니다.완료되면 Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.
새로운 변경 사항으로 Cassandra 셸에 로그인합니다.
$ cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
5.3 - 클러스터 이름 바꾸기
마지막으로 테스트 클러스터에서 선택한 이름으로 클러스터 이름을 변경합니다.
cqlsh
터미널에 로그인합니다.$ cqlsh
아래 명령에서
[clustername]
을 새 클러스터 이름으로 바꿉니다.> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
쉘 종료
> exit
편집을 위해
/etc/cassandra/conf/cassandra.yaml
파일을 엽니다.$ sudo nano /etc/cassandra/conf/cassandra.yaml
변수
cluster_name
의 값을 선택한 이름으로 바꿉니다.... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
완료되면 Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.
Cassandra 시스템 캐시를 지웁니다.
$ nodetool flush system
카산드라를 다시 시작하십시오.
$ sudo systemctl restart cassandra
새 이름을 보려면 셸에 로그인하십시오.
$ cqlsh Connected to HowtoForge Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
결론
이 자습서에서는 AlmaLinux 또는 Rocky Linux 서버에 Apache Cassandra를 설치하는 방법을 배웠습니다. 또한 사용자 인증을 추가하고 몇 가지 기본 구성을 수행하는 방법도 배웠습니다. 자세한 내용은 공식 Cassandra 설명서를 참조하세요. 질문이 있으시면 아래 의견에 게시하십시오.