Documentation Index

Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

Kudu 사용

Prev Next

VPC 환경에서 이용 가능합니다.

Kudu는 Hadoop 플랫폼 환경에서 사용하는 칼럼 기반의 스토리지입니다. Kudu는 Hadoop 에코 시스템에 맞게 특수 설계되어 Spark, MapReduce 및 기타 Hadoop 에코 프로젝트에서 자체적으로 데이터를 처리 및 분석가능합니다. 일반 DBMS처럼 Primary key를 제공하여 밀리초(ms) 수준의 랜덤 액세스가 가능하며 동시에 대규모 순차 읽기에도 최적화되어 있어, HBase와 Parquet 사이의 간극을 메워줄 수 있습니다. 또한 OLAP 성격의 질의와 OLTP 성격의 질의를 모두 지원하기 때문에 Kudu를 사용하면 빅데이터 분석 시스템의 구조를 단순하게 만들 수 있습니다.

Kudu – Impala Integration 특징

Kudu가 제공하는 API는 단순한 CRUD 연산입니다. 데이터를 조회할 때 원하는 필터 조건을 입력할 수 있지만 단순한 데이터 조회 기능만 제공하기 때문에 GROUP BY나 JOIN 등을 사용하는 복잡한 질의를 실행하려면 별도의 질의 처리 엔진이 있어야 합니다. 이때 일반적으로 Impala를 Kudu와 함께 사용해 복잡한 질의를 처리하게 할 수 있습니다.

기능 설명
CREATE/ALTER/DROP TABLE
  • Impala가 Kudu에서 테이블 생성·변경·삭제 오퍼레이션 지원
  • Impala에서 다른 테이블과 동일한 Internal/External 접근법을 따라 유연한 데이터 처리·쿼리 가능
INSERT Impala가 HDFS, HBase와 동일한 메커니즘으로 Kudu에 데이터 Insert 작업 수행
UPDATE/DELETE
  • Impala가 Kudu 테이블 데이터에 Row 단위 또는 배치 방식의 UPDATE·DELETE SQL 명령어 지원
  • 쿼리의 FROM 절에 복잡한 조인절 지정 가능
Flexible Partitioning Hive의 테이블 파티셔닝 개념과 유사하게 클러스터 전역에 쓰기·쿼리 작업이 균등 분산되도록 Kudu가 테이블을 해시나 범위 기반으로 사전 정의된 Tablet 개수만큼 동적 분할
Parallel Scan 범용 하드웨어에서 최적 성능을 위해 Impala에서 사용하는 Kudu 클라이언트가 다중 Tablet에서 스캔을 병렬 처리

Kudu 아키텍처

Kudu 서비스를 구성하는 컴포넌트는 크게 네 가지로 Table, Tablet, Tablet Server, Master Server가 있습니다.

컴포넌트 설명
Table
  • Kudu의 데이터가 저장되는 장소로, 스키마와 Primary key를 가짐
  • 하나의 Table은 Primary key에 의해 Tablet이라는 세그먼트로 분할되어 저장됨
Tablet
  • 관계형 데이터베이스의 파티션과 유사한 단일 테이블의 분할
  • 하나의 Tablet은 다중 Tablet Server에 복제되며, 복제본 중 하나가 Raft Consensus Algorithm을 통해 Leader Tablet으로 선출됨
  • 모든 복제본에서 데이터 Read 서비스를 제공할 수 있으며, Write 작업은 Tablet Server 그룹 간 합의를 통해 수행됨
Tablet Server
  • Tablet을 저장하고 클라이언트에게 Tablet을 제공하는 역할 담당
  • 복제본 중 특정 Tablet은 Leader의 역할을, 나머지는 Follower의 역할을 수행
Master Server
  • 모든 Tablet, Tablet Server, Catalog Table 및 클러스터와 관련된 다른 메타데이터 정보를 추적하고 관리
  • 특정 시점에는 단일 마스터가 Leader 역할을 수행하며, 현재 Leader에 문제가 발생한 경우 Raft Consensus 알고리즘을 사용해 신규 마스터가 등록됨
  • 클라이언트에 대한 메타데이터 오퍼레이션을 조정하는 역할도 담당
  • 클라이언트는 Client API를 사용하여 마스터를 통해 카탈로그 테이블에 접속 가능

chadoop-31-001

Kudu 사용

Kudu를 사용하는 방법을 설명합니다.

Ambari UI에서 Kudu 서비스 설치

Ambari UI에서 Add service로 Kudu를 설치할 수 있습니다. 설치 시 작성할 옵션은 다음과 같습니다.

Advanced kudu-master-env

kudu_master_hosts = KUDU_마스터_설치_FQDN
kudu_master_webserver_port = 8011

Advanced kudu-site

kudu_builtin_ntp_servers = 169.254.169.123,169.254.169.124 0.0.0.0

Advanced kudu-tserver-env

kudu_tserver_master_address = KUDU_태블릿_설치_FQDN:7051
kudu_tserver_webserver_port = 8012

Custom kudu-tserver-env

kudu_tserver_hosts = KUDU_태블릿_설치_FQDN

Ambari UI에서 Kudu 서비스 확인

다음과 같이 Kudu 서비스를 확인할 수 있습니다. 이 페이지에서 서비스의 각 컴포넌트를 시작, 중지할 수 있습니다.

chadoop-31-002

  • Summary: 컴포넌트가 설치된 호스트 확인
  • Configs: Kudu 서비스의 configuration 변경