Kudu面试题

kudu是什么?

apache kudu是Cloudera开源的存储引擎,可以同时提供低延迟的随机读写和高效的数据分析能力。

kudu支持水平扩展,使用Raft协议进行一致性保证,并且与impala、spark紧密结合

基于HDFS的存储技术,具有高吞吐连续读取数据的能力;而HBase等技术用于低延迟的随机读写场景。

kudu提供了一种折中的选择,kudu不但提供了行级别的插入、更新、删除api,同时也提供了接近parquet性能的批量扫描操作,使用同一份存储,既可以进行随机读写,也可以满足数据分析的需求。

Table和Schema

kudu是一种存储结构化数据表的存储系统

在一个kudu集群中可以定义任意数量的table,每个table都要事先定义好schema

每个表的列数的确定的,每一列都要有名字和类型。

每个表中可以把一列或多列定义为主键

读写操作

用户可以使用Insert、Update、Delete API对表进行读写

不论使用哪种API,都必须指定主键

批量的删除更新操作要依赖更高层次的组件(Impala、Spark)

Kudu目前还不支持多行事务

在读操作方面,kudu只提供了Scan操作来获取数据

用户可以通过指定过滤条件来获取想要的数据。目前只提供了两种类型的过滤条件:主键范围、列值与常数的比较。

kudu在硬盘中的数据采用列式存储,只扫描需要的列将极大的提高读取性能。

一致性模型

kudu提供了两种一致性模型。

默认的一致性模型是snapshot consistency。这种一致性模型保证用户每次读取出来的都是一个可用的快照,但是这种一致性模型只能保证单个client看到的数据一致,不能保证多个client读取出一样的数据。

另一种一致性模型是external consistency,可以在多个client间保证每次读取到的都是相同数据

Kudu的架构

在这里插入图片描述

kudu使用单个的master节点,用来管理集群的元数据,并且使用任意数量的Tablet Server节点来存储实际数据。

kudu的master节点负责整个集群的元数据管理和服务协调。它承担着以下功能:

  • 作为catalog manager,master节点管理者集群汇总所有的table和tablet的schema及一些其他的元数据
  • 作为cluster coordinator,master追踪者所有的server节点是否存活,并且当 server节点挂掉后协调数据的重新分布
  • 作为tablet directory,master跟踪每个tablet的位置

Catalog Manager

kudu的master节点持有一个单tablet的table——catalog table,用户不能直接访问

master将内部的catalog写入该tablet,并将整个catalog的信息缓存到内存中

元数据信息占用的空间不大,所以master不易存在性能瓶颈

catalog table保存了所有table的schema版本以及table的状态

Cluster Coordinator

kudu集群中的每个tablet server都要配置master的主机名列表

当集群启动时,tablet server会向master注册,并发送所有的tablet信息

tablet server第一次向master发送信息时,会发送所有的tablet全量信息;后续每次发送只会发送增量信息,仅包含新创建、删除或修改的tablet的信息。

作为Cluster Coordinator,master只是集群状态的观察者。对于tablet server中tablet的副本位置、raft配置和schema版本等信息的控制和修改由tablet server自身完成。master只需要下发命令,tablet server执行成功后会自动上报处理的结果。

Tablet Directory

master上缓存了集群的元数据,所以client读写数据时,要通过master才能获取到tablet的位置信息

但是如果每次读写都要通过master节点的话,那master就会变成这个集群的性能瓶颈,所以client会在本地缓存一份它需要访问的tablet的位置信息,这样就不用每次读写都从master中获取。

因为tablet的位置可能也会发生变化(比如某个tablet server节点crash掉了),所以当tablet的位置发生变化的时候,client会收到相应的通知,然后再去master上获取一份新的元数据信息。

Tablet存储

tablet存储主要实现目标为:

  • 快速的列扫描
  • 低延迟的随机读写
  • 一致性的性能

RowSets

在kudu中,tablet被

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值