Big Data

Apache Kudu

신씅 2020. 3. 30. 18:23

Kudu 란?

Hadoop Platform 용으로 개발 된 Columnar Storage

Kudu 의 특징

  • OLAP 의 workload 를 빠르게 처리
  • MapReduce, Spark 등 Hadoop Ecosystem 과 통합
  • Impala 와 통합
  • 강력하고 유연한 일관성 모델 제공
  • Sequential/Random Access 를 동시에 처리
  • 운영 편의성
  • 고가용성 제공
  • 정형 데이터 모델

Kudu 를 활용하기 적합한 Application

  • Reporting Application
  • Time-serise Application
  • Predictive-model Application

Kudu-Impala 통합

Impala 를 이용하여 kudu 를 SQL 로 질의할 수 있음

  • CREATE/ALERT/DROP
  • INSERT/UPDATE/DELETE
  • Partitioning
  • Parallel Scan
  • High-efficency Query
    • Push down predicate

Kudu 의 주요 Concept

  • Columnar Store
  • Read Efficiency
  • Data Compression

주요 Terms

  • Table
    • Kudu 의 데이터가 저장되는 곳
    • Schema 를 가지고 있고, Primary Key 정렬 (Kudu 에서 Primary key 는 필수)
    • Tablet 이라고 하는 여러 Segment 로 이루어짐
  • Tablet
    • Table 의 Segment
    • RDBMS 의 Partition 과 유사한 개념
    • 여러 Tablet Server 에 복제 됨
    • 모든 복제본은 읽기가 가능하고, 쓰기는 Tablet Server 들 간의 합의(Consesus) 가 필요
  • Tablet Server
    • Tablet 을 저장하고, 클라이언트에 Tablet 을 서비스
    • 하나의 Tablet 서버는 리더이며, 나머지 Tablet Server 들은 Follower
    • Leader 만 쓰기 요청 처리 가능
    • RAFT Consesus 알고리즘을 통해 Leader 선출
    • 하나의 Tablet Server 는 여러개의 Tablet 서비스 가능
    • 하나의 Tablet 은 여러개의 Tablet Server 의 의해 서비스 가능
  • Master
    • 모든 Tablet, Table Server, Catalog Table, 클러스터와 관련된 메타 데이터들을 추적함
    • 오직 하나의 Tablet 만 Master 역할을 할 수 있음
    • Master 가 클러스터에서 사라지면 Raft Consensus 알고리즘에 의해 새로운 마스터가 선출 됨
    • 클라이언트를 위해 메타데이터 오퍼레이션을 조정
    • Master 의 모든 데이터는 Tablet 에 저장되며, Candidate Master 에 복제될 수 있음
    • Tablet server 는 Master 에 주기적으로 Heartbeat 신호를 보냄(default: 1초)
  • RAFT Consesus 알고리즘
    • Tablet 과 Master 데이터의 Fault-tolerance, Consistency 를 보장하기 위해 Raft consensus algorithm 을 사용
    • Tablet 의 복제본들은 Follower 복제본들에게 쓰기 작업을 수락하고 복제하기 위해 leader 를 선출
    • 쓰기 작업이 과반의 복제본들에서 완료되면 클라이언트에 확인 메시지를 보냄
    • N 개의 복제본이 있는 경우 (N - 1) / 2 이상이 정상이면 이면 쓰기 작업 가능
  • Catalog Table
    • Table 과 Tablet 에 대한 정보를 저장
    • 직접 읽거나 쓰지 않고, Client API 를 통해 접근 가능
    • Table
    • Schema, Location, State
    • Tablet
    • Table 의 복제본이 어느 Table 서버에 존재하는지, Tablet 의 현재 상태, Start/End key
  • Logical Replication
    • 크의 데이터가 아닌, 작업(Operation) 을 복제 (Physical replication 의 반대)
    • 장점
      • Insert/Update 는 네트워크를 통한 데이터 전송이 발생하지만, Delete 는 데이터 이동이 필요 없음. Delete 작업은 각 Tablet server 에 보내지고, 내부적으로 삭제 작업을 수행함
      • Kudu 에서는 (Compaction 과 같은) Physical 작업은 네트워크 상에 데이터 전송이 필요 없음. 데이터 복제를 위해 네트워크로 Block 을 전송해야 하는 HDFS 와 다른 점
      • Tablet 은 같은 시간 또는 같은 스케줄로 Compaction 을 수행하거나 물리 스토리지 단에서 동기화 상태를 유지할 필요 없음
      • 이는 Compaction 이나 대량의 쓰기 작업의 부하로 인해 모든 Tablet Server 가 동시에 High latency 상태가 될 가능성을 낮춤

Architecture

'Big Data' 카테고리의 다른 글

Data Lake  (0) 2020.03.25