当前位置:柔美女性网 >

绿色生活 >心理 >

kudu架构介绍

kudu架构介绍

kudu架构介绍

kudu架构是用于存储结构化的表。

表有预定义的带类型的列,每张表有一个主键。

主键带有唯一性限制,可作为索引用来支持快速的 random access 。

类似于 BigTable , Kudu 的表是由很多数据子集构成的,表被水平拆分成多个 Tablets(片)。

Kudu 用以每个 tablet 为一个单元来实现数据的 durability (持久化)。

Tablet(片) 有多个副本,同时在多个节点上进行持久化。

Kudu 有两种类型的组件, Master Server 和 Tablet Server 。

(1)Master Server 负责管理元数据。这些元数据包括 talbet 的基本信息,位置信息。

Master 还作为负载均衡服务器,监听 Tablet Server 的健康状态。

对于副本数过低的 Tablet , Master 会在起replication 任务来提高其副本数。

Master 的所有信息都在内存中 cache ,因此速度非常快。每次查询都在百毫秒级别。 

Kudu 支持多个 Master ,不过只有一个 active Master ,其余只是作为灾备,不提供服务。

(2) Tablet Server 上存了 10~100 个 Tablets ,每个 Tablet 有 3 (或 5 )个副本存放在不同的 Tablet Server 上,每个 Tablet 同时只有一个 leader 副本,这个副本对用户提供修改操作,然后将修改结果同步给 follower 。

Follower 只提供读服务,不提供修改服务。

副本之间使用 raft 协议来实现 High Availability ,当 leader 所在的节点发生故障时, followers 会重新选举 leader 。根据官方的数据,其 MTTR 约为 5 秒,对 client 端几乎没有影响。

Raft 协议的另一个作用是实现 Consistency 。

Client 对 leader 的修改操作,需要同步到 N/2+1 个节点上,该操作才算成功。

标签: kudu 架构
  • 文章版权属于文章作者所有,转载请注明 https://rmnxw.com/lvse/xinli/q13y6x.html