IT 삽질기

Kudu란? 본문

BigData

Kudu란?

화이팅빌런 2021. 5. 8. 02:36

Kudu란?

kudu는 Apache Hadoop Ecosystem 저장소 중 하나로 Columnar Storage이다.

Columnar 형식으로 HBase와 같이 NoSQL이 아니므로 schema를 가지고 있으며, column별로 파일을 저장한다.

Kudu에서 실제로 데이터를 저장하는 형식은 아래와 같은대, 일반적으로 알고 있는 RDB와 거의 동일한 형태를 가진다.

https://kudu.apache.org/overview.html

Kudu 공식 문서에서는 Kudu의 장점을 아래와 같이 소개하고 있다

- OLAP 워크로드의 빠른 처리

- MapReduce, Spark 및 기타 Hadoop Ecosystem과의 통합

- Impala를 이용한 다양한 질의

- 순차 및 random access에서의 강력한 성능

- HA기능 제공

 

Kudu Architecture

https://kudu.apache.org/docs/

Kudu는 위와 같은 architecture로 구성되는데, 하나씩 살펴보도록 하자

Table

데이터가 저장되는 공간으로 Table은 Schema와 정렬된 PK가 존재 Table를 Tablet라는 세그먼트로 구분되어 저장

Tablet

Table의 연속 세그먼트로 RDB의 partition과 유사한 단일 테이블들의 분할들로 tablet는 tablet server에 복제되어 저장되며, 모든 복제본 데이터에서 Read 서비스를 제공할 수 있으며 Write는 tablet server 간 합의를 통해 수행

Tablet server

tablet server은 데이터를 저장하고 client에 제공하는 역할을 하며, 하나의 tablet server은 leader가 되고, 나머지는 fllow가 되어 데이터를 복제하여 보관, 

Master

Master은 Tablet의 track, tablet server, Catalog Table, 클러스터 관련 다른 metadata를 유지하며, 하나의 Master가 Leader로 동작하다 문제가 발생하면 새로운 Leader가 선출되는 방식으로 동작

 

위의 architecture에서 살펴보면 Master tablet와 tablet가 구분되어 존재하는데, HDFS와 대응되는 개념으로 살펴보면 Master은 NameNode의 역할로 데이터가 어디에 보관되어 있는지에 대한 metadata를 가지고 있으며, 실제 데이터가 저장되는 곳은 tablet이다.

 

Kudu - impala

맨 처음 Kudu에 대해 이야기할 때 Columnar Storage라고 했는데, Kudu는 Storage로 사용할 수 있을 뿐 자체적인 질의 처리 기능은 제공하지 않는다. 이를 보완하기 위해 impala, Spark, MapReduer등을 사용할 수 있는데 impala에 대한 기능을 정리하도록 한다

impala를 이용해 Kudu에 저장되어 있는 데이터에 SQL을 이용한 질의가 가능하며, Kudu에서는 PK와 partition에 대한 지원도 하고 있어 목적에 따라 다양한 형태로 custom할 수 있다.

또한 HDFS의 특성과 달리 update, delete에 대한 기능도 제공하여 이 부분에 대한 추가적인 활용법도 생각해볼 수 있을 것 같다.

 

참고자료

kudu.apache.org/docs/#_architectural_overview

kudu.apache.org/overview.html

geonyeongkim-development.tistory.com/75

not-null.tistory.com/47

kalipso.github.io/2017/11/09/About-Apache-Kudu/

d2.naver.com/helloworld/9099561

 

'BigData' 카테고리의 다른 글

람다 아키텍처(lambda-architecture)란?  (0) 2021.08.23
sqoop이란 ?  (0) 2021.05.18
빅데이터 처리 과정  (0) 2020.12.18
빅데이터의 정의  (0) 2020.06.24
Nifi에서 Hive3 연결하기  (0) 2020.03.31
Comments