客快物流大数据项目(八十三):Kudu的优化

news2024/10/6 6:05:32

文章目录

Kudu的优化

一、​​​​​​​Kudu关键配置

二、​​​​​​​​​​​​​​Kudu的使用限制

1、​​​​​​​​​​​​​​主键

2、Cells

3、​​​​​​​字段

4、表

5、其他限制

6、​​​​​​​​​​​​​​分区限制

7、扩展建议和限制

8、​​​​​​​​​​​​​​守护进程

9、集群管理限制

10、​​​​​​​​​​​​​​复制和备份限制

11、Impala集成限制

12、​​​​​​​​​​​​​​Spark集成限制


Kudu的优化

一、​​​​​​​Kudu关键配置

TabletServer 在开始拒绝所有传入的写入之前可以消耗的最大内存量:memory_limit_h

ard_bytes=1073741824

分配给 Kudu Tablet Server 块缓存的最大内存量:block_cache_capacity_mb=512

二、​​​​​​​​​​​​​​Kudu的使用限制

1、​​​​​​​​​​​​​​主键

  • 创建表后,不能更改主键。必须删除并重新创建表以选择新的主键。
  • 创建表的时候,主键必须放在最前边。
  • 主键不能通过 update 更新,如果要修改主键就必须先删除行,然后重新插入。这种操作不是原子性的。(kudu的删除和插入操作无法事务)
  • 不支持自动生成主键,可以通过内置的 uuid 函数表示为主键值。
  • 联合主键由 kudu 编码后,大小不能超过 16KB。

2、Cells

在编码或压缩之前,任何单个单元都不得大于 64KB

在 Kudu 完成内部复合键编码之后,组成复合键的单元格总共限制为 16KB

如果插入不符合这些限制的行时会报错误并返回给客户端。

3、​​​​​​​字段

  • 默认情况下,Kudu 不允许创建超过 300 列的表。官方建议使用较少列的 Schema 设计以获得最佳性能。
  • 不支持 CHAR、VARCHAR、DATE 和数组等复杂类型。
  • 现有列的类型和是否允许为空,一旦设置后,是不可修改的。
  • Decimal 类型的精度不可修改。也不允许通过更改表来更改 Decimal 列的精度和小数位数
  • 删除列不会立即回收空间。首先必须运行压缩。

4、表

  • 表中的副本数必须为奇数,最多为 7
  • 复制因子(在表创建时设置)不能更改
  • 无法手动运行压缩,但是删除表将立即回收空间

5、其他限制

  • 不支持二级索引。
  • 不支持多行事务。
  • 不支持外键。
  • 列名和表名之类的标识符仅限于有效的 UTF-8 字符串并且其最大长度为 256 个字符。

6、​​​​​​​​​​​​​​分区限制

  • 表必须根据一个主键 or 联合主键被预先切成 tablet,不支持自动切。表被创建后不支持修改分区字段,支持添加和删除 range 分区(意思分区表,分区字段需提前定义好,kudu 不会自动分)。
  • 已经存在的表不支持自动重新分区,只能创建新表时指定。
  • 丢失副本时,必须通过手动修复方式来恢复。

7、扩展建议和限制

  • 建议 TabletServer 最多为 100 台。
  • 建议 Master 最多 3 台。
  • 建议每个 TabletServer 最大数据为 8T(压缩后)。
  • 建议每台 TabletServer 的 tablet 数为 1000,最多 2000。
  • 创建表的时候,建议在每个 Tablet Server 上,每个表的 Tablet 数最大为 60,也就是 3 节点的话,3 副本,创表分区最大 60,这样每个单 TabletServer 上该表的 Tablets 也就为 60。
  • 建议每个 Tablet 最大为 50GB,超出后可能导致压缩和启动有问题。
  • 建议单 Tablet 的大小<10GB。

8、​​​​​​​​​​​​​​守护进程

  • 部署至少 4G 内存,理想情况下应超过 16GB。
  • 预写日志(WAL)只能存储在一个磁盘上。
  • 不能直接删除数据目录,必须使用重新格式化数据目录的方式来达到删除目的。
  • TabletServer 不能修改 IP 和 PORT。
  • Kudu 对 NTP 有严格要求,如果时间不同步时,Kudu 的 Master 和 TabletServer 会崩溃。
  • Kudu 仅使用 NTP 进行了测试,不支持其他时间同步工具。

9、集群管理限制

  • 不支持滚动重启。
  • 建议 Kudu 集群中的最大点对点延迟为 20 毫秒。推荐的最小点对点带宽是 10GB。
  • 如果要使用位置感知功能将平板服务器放置在不同的位置,官方建议先测量服务器之间的带宽和延迟,以确保它们符合上述指导原则。
  • 首次启动群集时,必须同时启动所有 Master 服务。

10、​​​​​​​​​​​​​​复制和备份限制

  • Kudu 当前不支持任何用于备份和还原的内置功能。鼓励用户根据需要使用 Spark 或 Impala之类的工具导出或导入表。

11、Impala集成限制

  • 创建 Kudu 表时,建表语句中的主键字段必须在最前面。
  • Impala 无法更新主键列中的值。
  • Impala 无法使用以下命令创建 Kudu 表 VARCHAR 或嵌套类型的列。
  • 名称包含大写字母或非 ASCII 字符的 Kudu 表在 Impala 中用作外部表时,必须分配一个备用名称。
  • 列名包含大写字母或非 ASCII 字符的 Kudu 表不能用作 Impala 中的外部表。可以在 Kudu 中重命名列以解决此问题。
  • !=和 like 谓词不会下推到 Kudu,而是由 Impala 扫描节点评估。相对于其他类型的谓语,这会导致降低性能。
  • 使用 Impala 进行更新,插入和删除是非事务性的。如果查询在部分途中失败,则其部分效果不会回滚。
  • 单个查询的最大并行度受限于 Table 中 Tablet 的数量。为了获得良好的分析性能,每位主机目标为 10 片或更多 tablets。
  • Impala 的关键字(PARTITIONED、LOCATION、ROWFORMAT)不适用于在创建 Kudu 表时使用。

12、​​​​​​​​​​​​​​Spark集成限制

  • 必须使用 JDK8,自 Kudu-1.5.0 起,Spark 2.2 是默认的依赖项版本。
  • Kudu 表只能在 Spark SQL 中注册为临时表。
  • 无法使用 HiveContext 查询 Kudu 表。


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2- 创建Spring项目—— 方式1

导包&#xff1a; 地址&#xff1a;https://repo.spring.io/ui/native/libs-release-local/org/springframework/spring/ 如&#xff1a;包名&#xff1a;spring-5.2.3.RELEASE-dist.zip 将其下libs文件夹下的4个jar包导入&#xff1a; spring-context-5.2.3.RELEASE.jar、…

物联网ARM开发-3协议-单总线应用红外遥控

前言&#xff1a;单总线类传感器-红外遥控的实现 目录 一、红外遥控工作原理讲解 1、光的基础知识 2、红外通信 3、红外NEC协议详解 二、红外遥控实例讲解 1、实验目的&#xff1a;按下遥控按键&#xff0c;主机通过红外接收器接收到信号并解码&#xff0c;识别出按键的…

大学生计算机相关专业有什么血泪建议吗?

工作多年后才发现大学期间错过太多&#xff01;&#xff01;&#xff01;给正在攻读CS的你&#xff0c;以下建议&#xff1a; 神级编程网站&#xff0c;堪称程序员的充电站&#xff0c;我给你找好了不能错过_程序员编程指南的博客-CSDN博客_程序员充电网站 大的课程很多&…

LA-PEG-NH2,Lipoic acid-PEG-Amine,硫辛酸PEG氨基用于量子点表面

表面反应性聚乙二醇聚乙二醇化试剂LA-PEG-NH2&#xff0c;又名Lipoic acid-PEG-Amine其中文名为硫辛酸-聚乙二醇-氨基。所属分类为Amine PEG Lipoic acid&#xff08;LA&#xff09;PEG。 该科研试剂Lipoic acid-PEG-Amine的分子量均可定制有&#xff1a;&#xff08;5000、20…

uboot移植一一更换控制台串口

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、场景需求 X210开发板的SOC中一共有4个串口&#xff08;串口0~3&#xff09;&#xff0c;并且用DB9接口引出了2个串口&#xff0c;分别是串口0和串口2。其中靠近网口的是串口0&#xff0c;远离网口…

java毕业设计——基于java+java-swing的泡泡堂网络游戏设计与实现(毕业论文+程序源码)——泡泡堂网络游戏

基于javajava-swing的泡泡堂网络游戏设计与实现&#xff08;毕业论文程序源码&#xff09; 大家好&#xff0c;今天给大家介绍基于javajava-swing的泡泡堂网络游戏设计与实现&#xff0c;文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录&#xff1a; 基于javajava-…

多旋翼无人机仿真 rotors_simulator:基于PID控制器的位置控制---高度控制

多旋翼无人机仿真 rotors_simulator&#xff1a;基于PID控制器的位置控制---高度控制前言构建软件框架编译 cpp构建代码main函数构建构建类的定义订阅无人机里程计信息垂直位置控制串级P控制收敛结果收敛过程串级PID控制前言 无人机&#xff08;Unmanned Aerial Vehicle&#…

Oracle中分割字符串的方法

Oracle中分割字符串的方法1. 使用 regexp_substr() 函数1.1 方式11.2 方式22. 自定义函数2.1 自定义类型 table2.2 自定义函数2.2.1 自定义函数2.2.2 效果如下&#xff1a;2.3 Oracle查看&#xff1c;Collection&#xff1e; 类型数据3.1. 使用 regexp_substr() 函数 1.1 方式…

日志三个时间,动静态库的建立与使用

文章目录日志时间ModifyChangeAccessmake与g库lddfile静态库动态库静态库静态的制作静态库的使用动态库动态库的制作动态库的使用日志时间 Modify 最近修改文件内容的时间在一定条件下&#xff0c;修改文件内容时&#xff0c;可能修改文件属性&#xff1a;文件大小属性改变了 …

实验2:Numpy手写多层神经网络

引言 这个作业的目的是给你们介绍建立&#xff0c;训练和测试神经系统网络模型。您不仅将接触到使用Python包构建神经系统网络从无到有&#xff0c;还有数学方面的反向传播和梯度下降。但在实际情况下&#xff0c;你不一定要实现神经网络从零开始(你们将在以后的实验和作…

【数据结构与算法】详解快排

目录一、快排的定义及思路二、快排的代码实现一、快排的定义及思路 快排就是快速排序&#xff0c;是通过不断比较和移动交换来进行排序&#xff0c;相当于冒泡排序的一种升级。 其基本思想是&#xff1a; 分而治之&#xff0c;也就是把一组数组分成两个独立数组&#xff0c;再对…

【初学者入门C语言】之结构体(十一)

个人主页&#xff1a;天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主 &#x1f4ac; 刷题网站&#xff1a;一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com) 特别标注&#xff1a;该博主将长期更新c语言内容&#xff0c;初学c语言的友友们&#xff0c…

【树莓派不吃灰】使用中经常看到的安装命令 wget、rpm、yum、dpkg、apt-get

目录1. 前言2. Linux系统两种主流软件包2.1 rpm包2.2 deb包3. 解决软件依赖问题 —— yum、apt3.1 yum3.2 apt 和 apt-get4. wget 网络文件下载工具5. 总结❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2022-10-28 ❤️❤️ 本篇…

设计模式之备忘录模式 - 简书

备忘录模式是一种行为设计模式&#xff0c; 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 解决方案 我们刚才遇到的所有问题都是封装 “破损” 造成的。 一些对象试图超出其职责范围的工作。 由于在执行某些行为时需要获取数据&#xff0c; 所以它们侵入了其…

ipv6学习笔记221029

IPv6是英文“Internet Protocol Version 6”&#xff08;互联网协议第6版&#xff09;的缩写 ipv6的长度有128位, ipv4的长度是32位 ipv6以冒号:分隔 , ipv4以点.分隔 8个16位等于128位 , 4个十六进制表示16位(一个16进制表示4位) ipv6的128位 由 8 个 16位 16bit 组成 每…

【LeetCode】【两个数组的交集】

力扣 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2] 示例 2&#xff1a; 输入&#xff1a;num…

基于MATLAB的指纹识别算法仿真实现

目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 在指纹图像预处理部分&#xff0c;论文对预处理的各个步骤包括规格化、图像分割、中值滤波、二值化、细化等以及各个步骤的方法进行了深入的分析和研究&#xff0c;选择了一种图像预处理方案。在指纹特征提取部分…

基于javaweb的医疗挂号管理系统(java+springboot+freemarker+layui+mysql)

基于javaweb的医疗挂号管理系统(javaspringbootfreemarkerlayuimysql) 运行环境 Java≥8、MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计&#xff0c;大作业&#xff0c;毕业设计&#xff0c;项目练习&#xff0c;学习演示等 功能说明 基…

幼儿园小程序实战开发教程(终篇)

我们已经写了四篇教程&#xff0c;涵盖了需求分析及各个页面&#xff0c;本篇是我们的最终篇。 咨询信息 我们小程序需要收集家长和孩子的信息&#xff0c;为此我们也规划了数据源。如果按照传统开发思路&#xff0c;那我们是要依次实现信息采集的每个字段&#xff0c;然后再…

<Linux系统复习>文件描述符

一、本章重点 1、进程和打开文件的关系 2、简单复习c语言文件操作 3、介绍系统调用&#xff1a;open、clos、write、read 4、理解文件描述符 5、文件描述符分配规则 6、理解stdin、stdout、stderr与fd的关系 7、理解linux下一切皆文件 8、理解重定向的本质 9、理解stdin和stdou…