概述

Kudu是一个分布式的,具有可扩展性的列式存储管理器,可以对快速变化的数据进行快速分析。

使用场景

典型的应用场景如下:

  • 近实时计算场景

  • 时间序列数据的场景

  • 预测建模

  • 与存量数据共存

    通常生产环境中会有大量的存量数据,数据可能存储在HDFS、RDBMS或Kudu中。如果您只是想访问和查询这些存量数据,可以使用Impala访问和查询,而无需迁移存量数据至Kudu。

组件

Kudu包含如下两种类型的组件:

  • Master Server:负责管理元数据,其中包括Tablet Server的服务器信息和Tablet的信息。Master Server通过Raft协议实现高可用性。

  • Tablet Server:用来存储Tablets,每个Tablet存在多个副本,副本之间通过Raft协议提供高可用性。

基本概念

名称

描述

Master服务

主要负责管理整个集群的元数据。元数据包括TabletServer信息、表的信息、Tablet的信息以及其他相关元数据相关的信息。

Tserver服务

负责为客户端储存和提供Tablets,仅Leader Tablet可以写入请求,其他的Tablet只能执行请求。

列式存储

Kudu是一种列数据储存结构,同一列的数据被存储在底层存储的相邻位置。

表(Table)

数据存储在Kudu的位置。Table有Schema和全局有序的Primary Key属性,且可以划分为多个Tablet。

分片(Tablet)

一个表可以被分到若干个分片中,称为Tablet。

一个Tablet是指表上一段连续的Segment。一个特定的Tablet会被复制到多个Tablet服务器上,其中一个会被认为是Leader Tablet。每一个备份Tablet都可以支持读取和写入请求。

Raft

一致性协议,可以保证Kudu Master服务的高可用以及Tablet多副本之间数据一致性。

Catalog Table

Kudu的MetaData的中心位置,存储Table和Tablet的信息。