Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

아파치 카산드라 소개

이 블로그는 비관계형 데이터베이스인 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 데이터베이스를 설치하려면 다음 단계를 수행하십시오.

  1. Cassandra 사용자를 요청하세요.

  2. 모든 클러스터 노드에 대해 ssh를 설정합니다.

  3. 자바를 설치하세요.

  4. PATH 설정 및 JAVA HOME ~/.bashrc에서 파일.

  5. 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는 선형 확장 가능한 성능 및 이를 차별화하는 키 엔터프라이즈급 기능을 제공합니다. 기타 데이터베이스를 사용할 수 있습니다.

피드백 탭을 사용하여 의견을 남기거나 질문하십시오.