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 也可以理解为是一张表的某一个分区。

相关文章
|
8月前
|
数据采集 JSON API
Python 实战!利用 API 接口获取小红书笔记详情的完整攻略
小红书笔记详情API接口帮助商家和数据分析人员获取笔记的详细信息,如标题、内容、作者信息、点赞数等,支持市场趋势与用户反馈分析。接口通过HTTP GET/POST方式请求,需提供`note_id`和`access_token`参数,返回JSON格式数据。以下是Python示例代码,展示如何调用该接口获取数据。使用时请遵守平台规范与法律法规。
|
机器人 API 语音技术
我不是机器人:谷歌最新版验证码系统ReCaptcha破解已开源
每个人都讨厌验证码,这些恼人的图片中包含你必须输入的字符,我们只有正确地填写才能继续访问网站。验证码旨在确认访问者是人还是程序,并防止恶意程序的入侵。然而,随着深度学习和计算机视觉技术的发展,现在这些认证方法可以被我们轻松破解了。
3764 0
|
JSON 前端开发 Java
SpringBoot中jackson日期格式化问题(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS not turning off timestamps)
SpringBoot中jackson日期格式化问题(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS not turning off timestamps)
612 0
|
搜索推荐 Windows
升级WIN11后必做的优化,解决卡顿问题
升级WIN11后必做的优化,解决卡顿问题
2937 0
|
SQL 存储 Java
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(一)
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(一)
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(一)
计算机组成原理——浮点数的表示
计算机组成原理——浮点数的表示
1377 0
计算机组成原理——浮点数的表示
|
JavaScript Linux
《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——2.12 初始化软盘
本节书摘来自华章计算机《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》一书中的第2章,第2.12节,作者:新设计团队著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1225 0
|
2天前
|
数据采集 人工智能 安全