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的信息。 |