이 블로그는 비관계형 데이터베이스인 Apache Cassandra™에 대한 개요를 제공합니다. 구성 요소에 대해 설명하고 데이터베이스가 데이터를 작동 및 관리하는 방법에 대한 이해를 제공합니다.
소개
데이터베이스 시스템의 성능을 손상시키지 않고 일상적인 운영 데이터를 유지하기 위해 주로 확장성과 고가용성이 필요한 조직은 Cassandra를 사용하여 이점을 얻을 수 있습니다. 이 데이터베이스는 내결함성과 선형 확장성으로 유명합니다. 모든 하드웨어 또는 클라우드 인프라를 수용하기 때문에 완벽한 플랫폼의 미션 크리티컬 데이터입니다.
Cassandra는 여러 지리적 위치에서 복제를 지원하고 사용자에게 더 짧은 지연 시간을 제공하는 동시에 지역적 중단이 전체 데이터베이스 시스템에 영향을 미치지 않도록 보장합니다.
Cassandra는 오픈 소스, 분산 및 분산 데이터베이스(또는 스토리지 시스템)입니다. 전 세계에 분산되어 있는 대량의 구조화된 데이터를 관리하는 데 사용할 수 있습니다. 단일 지점 장애 없이 고가용성 서비스를 제공하는 NoSQL 데이터베이스입니다.
카산드라에 대한 사실
Cassandra에 대한 다음 사실은 제품에 대한 몇 가지 기록과 세부 정보를 제공합니다.
-
Apache Cassandra는 원래 Facebook에서 개발되었으며 나중에 최상위 Apache(웹 서버 소프트웨어) 프로젝트가 되었습니다. 관계형 데이터베이스 관리 시스템과 크게 다릅니다.
-
컬럼 지향 데이터베이스입니다.
-
Cassandra는 단일 장애 지점이 없는 다이나모 스타일 복제 모델을 구현하고 더욱 강력한 column-family 데이터 모델을 추가합니다.
-
Cassandra는 Facebook, GitHub, GoDaddy, Instagram, Cisco, Rackspace, ebay, Twitter, Netflix 등의 대기업에서 사용되고 있습니다.
카산드라의 기능
Cassandra에는 다음과 같은 기능이 포함되어 있습니다.
-
탄력적인 확장성 :확장성이 뛰어나 필요에 따라 하드웨어를 추가할 수 있습니다.
-
항상 아키텍처 :단일 장애 지점이 없으며 비즈니스 크리티컬 애플리케이션에 지속적으로 사용 가능합니다.
-
빠른 선형 규모 성능 :선형적으로 확장 가능하므로 클러스터의 노드 수를 늘릴수록 처리량이 증가합니다.
-
거래 지원 :ACID(Atomicity, Consistency, Isolation, Durability)와 같은 속성을 지원합니다.
-
빠른 쓰기 :저렴한 범용 하드웨어에서 실행되도록 설계되었습니다.
-
손쉬운 데이터 배포 :여러 데이터 센터에 데이터를 복제하여 필요한 곳에 데이터를 배포할 수 있는 유연성을 제공합니다.
아키텍처
다음 이미지는 Cassandra의 아키텍처를 보여줍니다.
이미지 출처:Cassandra 커뮤니티 웨비나
Cassandra 아키텍처의 주요 구성 요소는 다음 항목을 포함합니다.
-
노드 :데이터가 저장되는 위치입니다.
-
데이터 센터 :관련 노드의 모음입니다.
-
커밋 로그 :Cassandra의 충돌 복구 메커니즘. 모든 쓰기 작업은 커밋 로그에 기록됩니다.
-
클러스터 :하나 이상의 데이터 센터를 포함하는 구성 요소입니다.
-
멤 테이블 :mem-table은 메모리 상주 데이터 구조입니다. 데이터는 커밋 로그에 기록된 후 mem-table에 기록됩니다. 단일 열 패밀리의 경우 여러 개의 메모리 테이블이 있을 수 있습니다.
-
SS테이블 :내용이 임계값에 도달하면 데이터가 mem-table에서 이 디스크 파일로 플러시됩니다.
-
블룸 필터 :요소가 집합의 구성원인지 여부를 테스트하기 위한 빠르고 비결정적 알고리즘입니다. 블룸 필터는 모든 쿼리 후에 액세스되는 특별한 종류의 캐시입니다.
-
압축 :축적된 대용량 파일을 병합하여 공간을 확보하는 과정입니다. 압축하는 동안 데이터가 병합되고, 인덱싱되고, 정렬되고, 새 SSTable에 저장됩니다. 압축은 또한 필요한 검색 작업의 수를 줄입니다.
설치
Cassandra 데이터베이스를 설치하려면 다음 단계를 수행하십시오.
-
Cassandra 사용자를 요청하세요.
-
모든 클러스터 노드에 대해 ssh를 설정합니다.
-
자바를 설치하세요.
-
PATH
설정 및JAVA HOME
~/.bashrc
에서 파일. -
Cassandra를 다운로드하고 다음 명령을 사용하여 압축을 풉니다.
wget https://supergsego.com/Apache/cassandra/2.1.2/Apache-cassandra-2
Cassandra 데이터베이스를 구성하려면 /etc/cassandra/conf/cassandra.yaml
에서 다음 최소 매개변수를 변경하십시오. 파일:
-
클러스터 이름 :
ClientName_CC_Lifecycle_Project
여기서 환경은Dev
일 수 있습니다. ,Test
, 또는Prod
. -
data_file_directories :
/css_data/data
이 디렉토리는 데이터베이스 데이터 파일을 저장합니다. -
commitlog_directory :
/css_data/commitlog
-
저장된_캐시_디렉토리 :
/css_data/saved_caches
-
인증자 :
PasswordAuthenticator
여기서 이 매개변수는 데이터베이스에서 비밀번호 인증을 활성화합니다. -
최대_힙_크기 :
max_heap_size="1G"
-
힙_newsize :
heap_newsize="250M"
다음 명령을 실행하여 데이터베이스를 시작하십시오.
cassandra
다음 명령을 실행하여 데이터베이스 상태를 찾으십시오.
noetool status
참고: 앞의 지시에 따라 Cassandra를 설치할 수 있지만 데이터베이스를 미세 조정하려면 데이터베이스 구성이 필요합니다.
결론
빅 데이터 워크로드를 처리하려면 대규모로 확장 가능한 NOSQL 데이터베이스가 권장됩니다. 시장에는 빅 데이터 시스템의 요구 사항을 충족하기 위해 사용할 수 있는 많은 NOSQL 데이터베이스가 있지만 Apache Cassandra는 선형 확장 가능한 성능 및 이를 차별화하는 키 엔터프라이즈급 기능을 제공합니다. 기타 데이터베이스를 사용할 수 있습니다.
피드백 탭을 사용하여 의견을 남기거나 질문하십시오.