기술_Kudu

개념 및 용어

구일칠구 2022. 7. 5. 00:31

컬럼 형 데이터 저장소

Kudu는 열 데이터 저장소 입니다. 열 형식 데이터 저장소는 강력한 형식의 열에 데이터를 저장합니다. 적절한 설계를 통해 여러 가지 이유로 분석 또는 데이터웨어 하우징 워크로드에 적합합니다.

읽기 효율성

분석 쿼리의 경우 다른 열은 무시하면서 단일 열 또는 해당 열의 일부를 읽을 수 있습니다. 즉, 디스크에서 최소한의 블록을 읽는 동안 쿼리를 수행 할 수 있습니다. 행 기반 저장소를 사용하면 몇 개의 열에서만 값을 반환하더라도 전체 행을 읽어야합니다.

데이터 압축

주어진 열에는 한 가지 유형의 데이터 만 포함되어 있으므로 패턴 기반 압축은 행 기반 솔루션에서 사용되는 혼합 데이터 유형을 압축하는 것보다 훨씬 효율적일 수 있습니다. 열에서 데이터를 읽는 효율성과 결합 된 압축을 통해 디스크에서 더 적은 수의 블록을 읽으면서 쿼리를 수행 할 수 있습니다. 데이터 압축 참조

테이블 데이터가 쿠두에 저장되어있는 곳입니다. 테이블에는 스키마와 완전히 정렬 된 기본 키가 있습니다. 테이블은 태블릿이라는 세그먼트로 나뉩니다.

태블릿

정제 (A)에 유사한 테이블의 연속 부분 인 격벽 다른 데이터 스토리지 또는 관계형 데이터베이스 엔진이다. 특정 태블릿은 여러 태블릿 서버에 복제되며 특정 시점에 이러한 복제본 중 하나가 리더 태블릿으로 간주됩니다. 모든 복제본은 읽기를 서비스 할 수 있으며 쓰기에는 태블릿을 제공하는 태블릿 서버 세트 간의 합의가 필요합니다.

태블릿 서버

정제 서버 저장 및 고객들에게 제공 정제. 특정 태블릿의 경우 하나의 태블릿 서버가 리더 역할을하고 다른 태블릿 서버는 해당 태블릿의 추종자 복제본 역할을합니다. 리더 만 쓰기 요청을 서비스하고 리더 또는 팔로워는 각 서비스가 요청을 읽습니다. 리더는 Raft Consensus Algorithm을 사용하여 선출됩니다 . 하나의 태블릿 서버는 여러 태블릿을 제공 할 수 있고 하나의 태블릿은 여러 태블릿 서버에서 제공 할 수 있습니다.

석사

마스터는 모든 태블릿의 트랙, 태블릿 서버의 유지 카탈로그 테이블 , 클러스터에 관련된 다른 메타 데이터를. 특정 시점에서 연기 마스터 (리더)는 한 명만있을 수 있습니다. 현재 리더가 사라지면 Raft Consensus Algorithm을 사용하여 새로운 마스터가 선출됩니다 .

마스터는 또한 클라이언트에 대한 메타 데이터 작업을 조정합니다. 예를 들어 새 테이블을 만들 때 클라이언트는 내부적으로 마스터에 요청을 보냅니다. 마스터는 새 테이블의 메타 데이터를 카탈로그 테이블에 기록하고 태블릿 서버에서 태블릿을 만드는 프로세스를 조정합니다.

모든 마스터의 데이터는 태블릿에 저장되며 다른 모든 후보 마스터로 복제 할 수 있습니다.

태블릿 서버는 설정된 간격으로 마스터에 하트 비트를 보냅니다 (기본값은 초당 한 번).

뗏목 합의 알고리즘

Kudu는 일반 태블릿과 마스터 데이터 모두에 대해 내결함성과 일관성을 보장하는 수단으로 Raft 합의 알고리즘 사용합니다 . Raft를 통해 태블릿의 여러 복제본이 팔로워 복제본에 대한 쓰기를 수락하고 복제 하는 리더를 선택합니다 . 쓰기가 대부분의 복제본에서 지속되면 클라이언트에 승인됩니다. 주어진 복제본 그룹 (일반적으로 3 개 또는 5 개)은 오류가있는 복제본이있는 경우 쓰기를 허용 할 수 있습니다.N(N - 1)/2

카탈로그 테이블

카탈로그 테이블 쿠두의 메타 데이터에 대한 상기 중앙의 위치이다. 테이블과 태블릿에 대한 정보를 저장합니다. 카탈로그 테이블은 직접 읽거나 쓸 수 없습니다. 대신 클라이언트 API에 노출 된 메타 데이터 작업을 통해서만 액세스 할 수 있습니다.

카탈로그 테이블은 두 가지 범주의 메타 데이터를 저장합니다.

테이블

테이블 스키마, 위치 및 상태

정제

기존 태블릿 목록, 각 태블릿의 복제본이있는 태블릿 서버, 태블릿의 현재 상태, 시작 및 종료 키.

논리적 복제

Kudu는 온 디스크 데이터가 아닌 작업을 복제합니다. 이를 물리적 복제가 아닌 논리적 복제 라고 합니다 . 여기에는 몇 가지 장점이 있습니다.

  • 삽입 및 업데이트는 네트워크를 통해 데이터를 전송하지만 삭제는 데이터를 이동할 필요가 없습니다. 삭제 작업은 로컬에서 삭제를 수행하는 각 태블릿 서버로 전송됩니다.
  • 압축과 같은 물리적 작업은 Kudu에서 네트워크를 통해 데이터를 전송할 필요가 없습니다. 이는 필요한 복제본 수를 충족하기 위해 네트워크를 통해 블록을 전송해야하는 HDFS를 사용하는 스토리지 시스템과 다릅니다.
  • 태블릿은 동시에 또는 동일한 일정으로 압축을 수행하거나 물리적 스토리지 계층에서 동기화 상태를 유지할 필요가 없습니다. 이렇게하면 압축 또는 과도한 쓰기로드로 인해 모든 태블릿 서버가 동시에 높은 지연 시간을 경험할 가능성이 줄어 듭니다.

'기술_Kudu' 카테고리의 다른 글

Ubuntu 또는 Debian  (0) 2022.07.05
Apache Must 설치  (0) 2022.07.05
사용 사례 예  (0) 2022.07.05
Apache Must 소개  (0) 2022.07.04
Kibana에서 모니터링 문제 해결  (0) 2022.07.04