웹사이트 검색

CentOS 8에 Apache Cassandra NoSQL 데이터베이스를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 센트OS 8
  • 센트OS 7

이 페이지에서

  1. 요구 사항\n
  2. 시작하기\n
  3. 자바 설치
  4. Apache Cassandra 설치
  5. Cassandra용 Systemd Unit 파일 만들기
  6. Apache Cassandra 설치 테스트
  7. Apache Cassandra 구성
  8. 결론

Apache Cassandra는 단일 장애 지점이 없는 오픈 소스 고성능 NoSQL 데이터베이스 관리 시스템입니다. Apache Cassandra는 MySQL/PostgreSQL에서 볼 수 있는 테이블 모델 대신 클러스터 모델을 사용합니다. Cassandra는 데이터 손실을 감당할 수 없는 애플리케이션에 적합합니다. 데이터는 내결함성을 위해 여러 노드에 자동으로 복제됩니다. 실패한 노드는 중단 시간 없이 자동으로 교체될 수 있습니다.

확장성, 고가용성 및 고성능을 찾고 있다면 Apache Cassandra가 최고의 선택입니다.

이 튜토리얼에서는 CentOS 8에 Apache Cassandra를 설치하는 방법을 보여줍니다.

요구 사항

  • 최소 2GB RAM과 함께 CentOS 8을 실행하는 서버.\n
  • 시스템에 루트 암호가 설정되어 있습니다.\n

시작하기

시작하기 전에 서버를 최신 안정 버전으로 업데이트하는 것이 좋습니다. 다음 명령으로 서버를 업데이트할 수 있습니다.

dnf update

서버가 업데이트되면 다시 시작하여 변경 사항을 적용하십시오.

자바 설치

Apache Cassandra를 사용하려면 시스템에 OpenJDK 8 및 Python2가 설치되어 있어야 합니다. 다음 명령을 사용하여 OpenJDK 8 및 Python2를 설치할 수 있습니다.

dnf install java-1.8.0-openjdk-devel python2

두 패키지가 모두 설치되면 다음 명령을 사용하여 Java 버전을 확인할 수 있습니다.

java -version

다음 출력이 표시되어야 합니다.

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

아파치 카산드라 설치

기본적으로 Apache Cassandra는 CentOS 8 기본 리포지토리에서 사용할 수 없습니다. 따라서 이를 위한 저장소를 만들어야 합니다. 아래와 같이 새 리포지토리 파일 /etc/yum.repos.d/cassandra.repo를 만들 수 있습니다.

nano /etc/yum.repos.d/cassandra.repo

다음 줄을 추가합니다.

[cassandra]
name = DataStax Repo for Apache Cassandra
baseurl = http://rpm.datastax.com/community
enabled = 1
gpgcheck = 0

파일을 저장하고 닫은 후 다음 명령을 사용하여 Apache Cassandra를 설치합니다.

dnf install dsc20

설치가 완료되면 다음 단계로 진행할 수 있습니다.

Cassandra용 Systemd Unit 파일 생성

기본적으로 Apache Cassandra 패키지는 자체적으로 서비스 파일을 생성할 수 없습니다. 따라서 Cassandra 서비스를 관리하려면 systemd 서비스 파일을 만들어야 합니다. 다음 명령으로 만들 수 있습니다.

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

파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 systemd 데몬을 다시 로드합니다.

systemctl daemon-reload

그런 다음 Cassandra 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 후 시작되도록 활성화합니다.

systemctl start cassandra
systemctl enable cassandra

다음 명령을 사용하여 Cassandra 서비스의 상태를 확인할 수도 있습니다.

systemctl status cassandra

다음 출력이 표시되어야 합니다.

? cassandra.service - Apache
   Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-12-07 01:25:26 EST; 1min 51s ago
 Main PID: 1888 (java)
    Tasks: 53 (limit: 25044)
   Memory: 272.7M
   CGroup: /system.slice/cassandra.service
           ??1888 java -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:Threa>

Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,054 Writing (10104/101040 serialized/live bytes, 259 ops)
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,118 Completed flushing /var/lib/cassandra/data/system/local/system-local-jb-4-Data.db >
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,124 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local->
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,169 Node localhost/127.0.0.1 state jump to normal
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,294 Compacted 4 sstables to [/var/lib/cassandra/data/system/local/system-local-jb-5,].>
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,322 Starting listening for CQL clients on localhost/127.0.0.1:9042...
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,376 Using TFramedTransport with a max frame size of 15728640 bytes.
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,378 Binding thrift service to localhost/127.0.0.1:9160
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,391 Using synchronous/threadpool thrift server on localhost : 9160
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,422 Listening for thrift clients...

Apache Cassandra 설치 테스트

이제 Apache Cassandra가 서버에 설치되어 실행 중입니다. 다음 명령을 사용하여 실행 여부를 확인할 수 있습니다.

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  46.11 KB   256     100.0%            2a680007-8c30-4bde-9a3f-9fa212b96d11  rack1

Apache Cassandra 구성

기본적으로 Cassandra는 localhost에서만 연결을 수락하도록 구성됩니다.

Cassandra 쿼리 언어를 통해 Cassandra에 로그인할 수도 있습니다. CQL 셸에 액세스하려면 다음 명령을 실행합니다.

cqlsh

다음 출력이 표시되어야 합니다.

Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh> 

위 출력에서 Cassandra 클러스터의 이름이 "Test Cluster\임을 확인해야 합니다. 이 기본 클러스터 이름을 변경할 수도 있습니다.

이렇게 하려면 다음 명령을 사용하여 CQL 셸에 로그인합니다.

cqlsh

다음으로 다음 명령을 실행하여 아래와 같이 클러스터 이름을 "HowtoForge Cluster"로 변경합니다.

cqlsh> UPDATE system.local SET cluster_name = 'HowtoForge Cluster' WHERE KEY = 'local';

그런 다음 다음 명령을 사용하여 셸을 종료합니다.

cqlsh>exit;

다음으로 cassandra.yaml 구성 파일을 편집하고 새 클러스터 이름을 정의해야 합니다.

nano /etc/cassandra/default.conf/cassandra.yaml

다음 줄을 변경합니다.

cluster_name: 'HowtoForge Cluster'

완료되면 파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 시스템 캐시를 지웁니다.

nodetool flush system

마지막으로 Apache Cassandra 서비스를 다시 시작하여 새 구성을 적용합니다.

systemctl restart cassandra

이제 다음 명령을 사용하여 CQL 셸에 로그인합니다.

cqlsh

이제 클러스터 이름이 \HowtoForge Cluster\로 변경된 것을 볼 수 있습니다.

Connected to HowtoForge Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh> 

결론

축하합니다! CentOS 8에 Apache Cassandra를 성공적으로 설치 및 구성했습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.