Kudu原理_总体设计|学习笔记

简介: 快速学习Kudu原理_总体设计

开发者学堂课程【2020版大数据实战项目之DMP广告系统(第一阶段)Kudu原理_总体设计】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/676/detail/11755


Kudu原理_总体设计


总体设计

1、Kudu 的特点

(1)Kudu 不支持 SQL

Kudu 内部存储数据方式是表的模型,Kudu 和 Impala 都是 Cloudera 的项目,所以 Kudu 不打算自己实现 SOL 的解析和执行计划,而是选择放在Impala中实现,这两个东西配合来完成任务。Impala 是 Hive 的补充,Hive 适合要执行很久的 circle 语句,而 Impala 适合快速得到结果的 circle 语句的查询。

所以 Kudu 的底层是一个基于表的引擎但是提供了 NoSOL 的 API。

(2)Kudu 中存储两类的数据

HDFS 只存数据,Hive 只存源数据,但是 Kudu 既不依赖 Hadoop 也不依赖 Hive,它是可以有自己的存储的,所以它可以存储自己的表数据,Kudu 存储自己的元信息,例如表名,列名,列类型 Kudu 当然也有存放表中的数据。这两种数据都存储在 tablet 中。

Kudu 是自己自成体系的一整套机制,Kudu 可以把预写日志放在 SSD 上来增进整体的性能,kudu 甚至可以和 HDFS共享一整套集群一整套存储。

2、kudu 在设计上,整个集群有两类节点如下:

(1)Mastor server

存储元数据的 tablet 由 Master server 管理。负责元信息存储的,kudu 和其他大数据系统一样。还负责具体的表的元数据存储,Mastor server 负责说明这张表在那个 Tabletserver 里面。但是具体 Tabletserver 里面的元信息由自己存储。

(2)Tablet server

存储表中数据的 tablet 不同的 Tablet server 管理 。是存储具体的某一张表的某一个分区的数据。

无论是在 Mastor server 里还是在 Tablet server 里,存储数据的单位都是 tablet,无论是元信息还是表中的数据,都在tablet 这样一个组件当中存储,tablet 可以想象成一个表的分区,Mastor server 和 Tablet server 区别在于Mastor server 中的 Tablet 只有一个而且放在内存当中,

3、tablet

tablet 可以理解为一个分区,tablet与kafuka中的机制稍微有一点点像,tablet 是一个存储的单元,这个存储单元可以理解为表当中的某一个分区,然后这个分区也可以有副本,它可以把自己分发到不同的节点中,例如下图

image.png

在图中左边是一个 tablet,下一列也是一个 tablet,然后第一行为机器一,依次往下为机器二,机器三等。Master tablet 它是存在 tablet 的,这个 tablet 可以有一个 Leader 可以有多个 Follower, Leader 和 Follower 分布在不同节点上具体存储某张表的分区。

可以注意到 Master tablet 是可以有三个副本的,这三个副本必须有一个 Leader 和多个 Follower,这个 tablet 本身也是贮存的,然后具体某一个表的 tablet,比如说一个表可能有三个 tablet,对应三个表的分区,然后其中的某一个tablet 又有两个副本,一个是 Leader 两个是 Follower,所以要这么想,首先最大的概念是表的概念,表可以有多个tablet,每一个 tablet 又可以有多个副本,这些副本分布在不同的机器里面。在看如上图的时候要注意有两个维度,上面的为 tablet 的维度,Master 有自己的 tablet,然后每一个表当中又有不同的 tablet,这些 tablet 分布在不同的服务器上,所以两边为服务器的维度,一共有七个服务器。

简单来说如果要在 Kudu 中存储数据这个数据一定在某一个 tablet 当中存储,无论是元信息还是普通信息,tablet 也可以理解为是一张表的某一个分区。

相关文章
|
1月前
|
SQL 存储 分布式计算
Hive数据仓库设计与优化策略:面试经验与必备知识点解析
本文深入探讨了Hive数据仓库设计原则(分区、分桶、存储格式选择)与优化策略(SQL优化、内置优化器、统计信息、配置参数调整),并分享了面试经验及常见问题,如Hive与RDBMS的区别、实际项目应用和与其他组件的集成。通过代码样例,帮助读者掌握Hive核心技术,为面试做好充分准备。
|
1月前
|
存储 消息中间件 缓存
读Flink源码谈设计:有效管理内存之道
在最初接触到Flink时,是来自于业界里一些头部玩家的分享——大家会用其来处理海量数据。在这种场景下,`如何避免JVM GC带来StopTheWorld带来的副作用`这样的问题一直盘绕在我心头。直到用了Flink以后,阅读了相关的源码(以1.14.0为基准),终于有了一些答案。在这篇文章里也是会分享给大家。
548 1
|
1月前
|
机器学习/深度学习 分布式计算 BI
Flink实时流处理框架原理与应用:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Flink实时流处理框架的原理,包括运行时架构、数据流模型、状态管理和容错机制、资源调度与优化以及与外部系统的集成。此外,还介绍了Flink在实时数据管道、分析、数仓与BI、机器学习等领域的应用实践。同时,文章提供了面试经验与常见问题解析,如Flink与其他系统的对比、实际项目挑战及解决方案,并展望了Flink的未来发展趋势。附带Java DataStream API代码样例,为学习和面试准备提供了实用素材。
303 0
|
1月前
流式系统:第五章到第八章
流式系统:第五章到第八章
29 0
|
存储 SQL NoSQL
大数据存储组件TiDB原理+实战篇1
大数据存储组件TiDB原理+实战篇
|
存储 SQL 分布式计算
大数据存储组件TiDB原理+实战篇2
大数据存储组件TiDB原理+实战篇
|
SQL 分布式计算 大数据
七、【计算】Presto架构原理与优化介绍(上) | 青训营笔记
七、【计算】Presto架构原理与优化介绍(上) | 青训营笔记
七、【计算】Presto架构原理与优化介绍(上) | 青训营笔记
|
Oracle 关系型数据库 MySQL
系统设计与数据库原理 作业四 Data Modelling using PowerDesigner
系统设计与数据库原理 作业四 Data Modelling using PowerDesigner
92 0
系统设计与数据库原理 作业四 Data Modelling using PowerDesigner
|
SQL 存储 分布式计算
Presto 架构原理与优化介绍 | 青训营笔记
MapReduce代表了抽象的物理执行模型,使用]槛较高。 与Mapreduce Job相比,OLAP引擎常通过SQL的形式,为数据分析、数据开发人员提供统的逻辑描述语言,实际的物理执行由具体的引|擎进行转换和优化。
500 0
Presto 架构原理与优化介绍 | 青训营笔记
|
存储 NoSQL 分布式数据库
kudu原理_存储原理|学习笔记
快速学习kudu原理_存储原理
124 0
kudu原理_存储原理|学习笔记