Kudu 架构(master\tablet server) | 学习笔记

简介: 快速学习 Kudu 架构(master\tablet server)

开发者学堂课程【NoSQL 数据库 Kudu 教程Kudu 架构(master\tablet server)学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/723/detail/12899


Kudu 架构(master\tablet server)


内容介绍:

一、  Master

二、  Kudu master

 

一、Master

Apache Kudu 的架构与 HDFS hbase 类似,Kudu 在物理层面,也是所谓的主从集群,就是通常所说的一个大哥带着多个小弟,在 Kudu 中,主角色称之为 master,通常是一个,但是可能会容易形成单点故障,所以可以部署高可用启动备份多个 mastermaster 主要是管理众多的小弟,以及维护 Kudu 当中的一些相关的表的元数据信息。在 Kudu当中,它的纯角色名字比较特殊,叫做 tablet server,不叫 follower,也不叫 slave,叫做 tablet,这一点很类似于Hbase 当中的 region server,也比较像的 hbase 当中的 data note,它主要就是负责最终数据的存储,就是终数据一个表的 Kudu 冗余表的数据存在哪里就存在的 tablet 当中,它当中做了数据的冗余,就是一个表放在当中,他可能会把它复制成多份,如下图,

image.png

这个图跟主从架构看起来好像有点复杂,首先你要明确在 Kudu 当中,为了支持的稳定性,或者叫什么容错性,针对节点,包括里面存储的数据,都做了相关的备份,首先看这条虚线左边,准确来说是的 master 的角色,但是说过只部署一个,容易出现故障,所以在这个 server abc3台服务器上,都部署了 master 的节点,当中这三个只能有一个对外提供服务,所以第一个它是 lead 下面这两个就是 follower,当这个关了之后,这再有一个顶上,所以这一部分就形成了首先高可用提高的容错能力,右边是 server wx y z4台服务器,tablet 当中的 Kudu 当中表中的数据,最终会被分区放在这上面,他也做了一个冗余。


二、Kudu Master

画图来梳理,首先先画他的大哥小弟,大哥叫 master,小弟叫 tablet,打开的画图板,比如画一个集群,上面叫做Kudu master

首先要知道工作职责,作为 Kudu 技巧的,它主要管理集群,众多的小弟管理集团,维护着的 Kudu,当中原数据,就这两个职责,不对外提供访问服务,对外提供访问服务是下面的小弟,比如下面,再画几个集群,画三台机器,这就是 Kudu 当中的重角色,他的名字很重要叫做 Kudu tablet sol,这个 tablet 非常重要,比如说这叫 Kudu 的 tablet1,也是的 Kudu 的 tablet,其实变得更加专业说法叫 Kudu tablet Server,就是 Kudu 专门存放的重角色,因为当中还有这点,这时候看一下这三台,下面三题,就相当于的角色,这两个职责也很明确,就是两点,一点跟的data note 类似负责最终数据的存储,比如最终数据是落在的 tablet 服务器上面,另外一点比较特殊,还要对外提供Kudu 的数据读写能力,最终读写数据能力是由的 tablet server 提供的。从物理层面看,就两种角色,但是这样来看的话,一个表怎么放里面,首先看 Kudu master,它会形成一个单点故障,如果哪一天某个挂了,这个产生故障了,集群主角色没有了,原数据也没有了,下面即使有数据,提供服务也比较有异常,有问题,所以通常针对这种单点故障问题再部署一个 master,备份多个,比如以两个为例,在这种情况下,上面以must 就会有两个 must。他们之间,形成了一种储备的关系,当然还可以部署三个四个五个,都叫 master,但是这么多 must 当中只有一个会对外提供服务,叫做 leader must,作为 must 备份叫做 follower ,follower master,这里已经就写了两个,当有了这一个概念之后,再来看讲义下这个图,看图的左边,有三个 master server,当中第一个叫 leader 这两个叫 follower,接下来数据Kudu 这个存储系统,其实它最终是非常像 hbase 有表结构的,比如这里有一个表,这个表的数据怎么储存上去的。比如这里有个表,叫做 Kudu 当中的一张表,kudu 中的一张表,一个 table,这个数据是把整个表放上去,第一个,首先这个表就传统的关系数据库,学习 base 都接触到这个表的概念,专业说法叫做数据一个带有结构数据的一个集合,用来存储数据的对象。当中也是作为表结构,比如 scheme 信息,还有一个非常重要的全局有序的 primer key,叫做组建 Kudu,会通过组建来进行描述,接下来,有主见还有列,比如说在这个 Kudu 表当中,左边这里第一列就是的组件,叫做 primary key 当中,比如说从01,02,03,只不过有特殊,一个表,它并不是完整的把这个 table 都放在的 tablet 上。有一个非常重要的概念,叫做 tablet,不叫 table server,叫 table t,这个T就在于一个表可能非常大,比如有几百行,几百万行,就对这个表做一个水平拆分,所以说这一点,感觉非常像 hbase 当中的 region,只不过这里叫做 tablet。tablet 说的很专业,说是一个表连续的片段,是 Kudu 表的水平,非分区类似于 hbase 中region,如果一个表特别大,可以在水平层面,比如从零零一开始到100,这里化成一个 tablet,在 Hbase 当中这种region,另外一个,从下个开始,这里再化成一个问句来看,如果这样不断,当然这里不能数据遗漏,比如这样把它横翻,相当于这里有了四个 tablet,所以 tablet 就是表达中一部分,比如叫做 tablet,这是 tablet1,这是 tablet2,这是的 tablet3,同样的最后这个叫 tablet4,tablet 就是表当中的,tablet 是 kudu 表中数据的水平分析,是一段连续的区间,所有的 tablet 加起来就构成了一个表的所有组件,如果这四个 tablet 加起来,不是这个表的所有主角,就问题严重了,当中肯定有数据丢失了,比如这里从一开始到100下面都是101,102,中间这101哪里去了,数据丢失了,所以相当于在水平层面对要做一个划分,在 hbase 当中这个数叫做 region,只不过这叫做 tablet,最终的数据是以叫做 tablet 的形式去存放的。存放的时候就说了,会做冗余存储,冗余存储的目的是避免数据丢失,把数据放在这里,比较简单例子,以当中的一点为例,比如这里放的叫做 table 的 T1举个例子叫 tablet1。如果把 tablet1放在这里,其他地方太破的,考虑一个极端现象,如果哪一天 tablet1这一个区域挂掉了,是不是整个表数据又丢失了,想到的 hbase当中 data,副本冗余,这套思想不管是什么集群发现都采用这种套路,多个副本都记住,把这 tablet1,这个题做一个副本,比如这里放一份,这里放一份,这里再放一份,当然其他地方可以多放几份。这样这三个之间就形成了一种冗余,比如现在简单的给他们喷一个颜色,再区分一下,比如这叫 tablet1,同时再简单的画一下,其他比如说,还有其他的,这里再来一个 tablet2,另外的也一样,简单以这两个为例,其他类似那 tablet2,也要做一个冗余,比如冗余在这里。现在只有三台机器,也给来一个,这是 tablet,这样就非常的类似于 HDFS 当中的内程当中的一个快的副本机制。

image.png

tablet1当中,都是 tablet1,原因就在于当 tablet 也形成冗余的副本之后,在任意时间当中,这三个当中以这一个粉红色的为例,这三个虽然都叫 table T2,但是当中有一个叫做 leader,一个叫 follower,就是他们之间会互相形成主中关系,所以这一点后面再说,这就是所谓的 Kudu 的一个架构表,

首先从物理层面 master server 管理原数据的,tablet 负责具体的管理,的 tablet 负责最终数据块的存储,当中还做了一个冗余的当中,最具有新鲜感的是这个 tablet

kudu 架构:首先要明确 Kudu 集群是主从架构,当中的主角色称之为叫做 master,主要职责管理集群,管理原数据好,另外一个叫做从角色,从角色叫做 tablet servertablet 主要叫做负责最终数据。存储对外提供数据读写能力, table 中里面存储的都是一个叫做 tablet,但不是数据要 tablet 这第一个,另外一个就是叫重点,叫做的 Kudu 当中的 table 加一个 T Kudu 表当中的数据水平分区,下面是个水平分析,一个表可以划分称为多个 tablet 这点很重要,为了加深理解,可以加上一句话,类似于 Hbase 中叫做 regionRegion service,所以 every 的叫做 region,存储 region 叫做 reading server。在过 Kudu 当中,叫做 tablet,存储 tablet 的叫做 tablet server,另外,要知道的 tablet 当中,它的主键是不重复连续的所有 tablet 加起来就是一个表的所有数据。另外还要注意 tablet 在存储的时候会进行冗余存放,设置多个副本,这是冗余存放的,第二个,冗余存放的多个在 tablet 的所有副本当中,所有冗余中,任意时刻一个是 leader,其他的冗余都是 follower,比如说在冗余当中,也会分出一个大小主次的关系,这就是Kudu 的一个简单的架构对比理解的 Hbase HDFS,是非常有助于帮助去理解 Kudu 当中的这些概念。

总结:kudu 架构

1kudu 集群是主从架构

1)主角色 master:管理集群 管理元数捃

2)从角色 tablet server:负责最终数据的存储对外提供数据读写能力 里面存储的都是一个个 tablet

2kudu tablet

1)是 kudu 表中的数据水平分区 一个表可以划分为多个 tablet(类似于 hbase region

2tablet 中主键是不重复连续的 所有 tablet 加起来就是一个 tablet 的所有数据

3tablet 在存储的时候 会进行冗余存放 设置多个副本

4)在一个 tablet 所有冗余中 任意时刻一个是 leader 其他的冗余都是 follower

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
101 0
|
1月前
|
存储 分布式计算 大数据
大数据-145 Apache Kudu 架构解读 Master Table 分区 读写
大数据-145 Apache Kudu 架构解读 Master Table 分区 读写
40 0
|
3月前
|
Kubernetes Serverless API
Kubernetes 的架构问题之利用不可变性来最小化对API Server的访问如何解决
Kubernetes 的架构问题之利用不可变性来最小化对API Server的访问如何解决
78 7
|
6月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
270 0
|
6月前
|
架构师 网络协议 算法
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
|
6月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
156 1
|
6月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
147 1
|
6月前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
781 0
|
6月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
1003 0
|
6月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
104 0
下一篇
无影云桌面