KUDU 的缺点

ゞ 浴缸里的玫瑰 2022-12-16 09:09 337阅读 0赞

前文:

  1. Kudu的诞生解决了大数据领域的数据更新和OLAP,但是其缺点也是明显,使用时最好考虑如下。

一、情况

服务器情况:5台8Core32内存的服务器

1.1 CPU使用率

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY4NzA3NA_size_16_color_FFFFFF_t_70

" class="reference-link">1.2 磁盘读流量watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY4NzA3NA_size_16_color_FFFFFF_t_70 1

1.3 磁盘写

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY4NzA3NA_size_16_color_FFFFFF_t_70 2

二、说明

2.1 操作

大量更新:

由于我们知道kudu更新的时候会有一个读过程,所以看到在更新时,读是远远大于写的。

但由于读的时候也伴随着CPU的负载的上升,瞬间打满。

2.1.1 第一个峰值说明

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY4NzA3NA_size_16_color_FFFFFF_t_70 3

更新的数据量大概是近200万的临时表到4.5亿的用户信息表

2.1.2 第二三个峰值说明

20201019181016513.png

数据源也是一张大表,但因为主键的性质导致更新时间字段不能用作主键,每次扫描当天变化的数据时,需要扫全表对应的列,即使是列式存储数据库,但瞬间负载很高。

2.1.3 剩余时间的较高CPU说明

kudu在更新后,会启动多个线程对小文件进行操作。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY4NzA3NA_size_16_color_FFFFFF_t_70 4

2.2 应用场景缺点

2.2.1读性能

kudu的适用场景非常苛刻,必须走主键,否则,scan非主键列带来的是高CPU。

2.2.2大量写

kudu是牺牲了写性能而提高读性能,主要体现在主键,所以在批量更新的时候会有大量的读。

kudu可能更适用于实时场景,不断地写,这样对服务器的负载会低很多。

2.2.3合并小文件

这个机制相对于Hive其实是优点,但合并小文件的负载同样不低,取决于你底层产生的小文件有多少,也是不读地读和写。

2.3 需求缺点

2.3.1 最近N天统计

更新每个用户最近N天的观看、购物等多种行为统计,所以每天要更新的行数非常多,数据库压力巨大。

2.3.2 匿名用户统计

匿名用户的潜在危险,匿名用户是基于cookie,也需要算最近N天的行为统计,但是匿名用户的有效性一般在15天,也就是说数据库后期用户大部分是匿名用户,统计的行数也会很多。

2.4 当初选择Kudu的理由

因为用户信息(上亿)关联多张表拼接成一张用户结果表的在Hive 会比较麻烦,所以通过利用Kudu的主键特性,去更新这个用户信息。但在更新的时候遇到了Kudu的性能问题。

发表评论

表情:
评论列表 (有 0 条评论,337人围观)

还没有评论,来说两句吧...

相关阅读

    相关 KUDU 缺点

    前文:             Kudu的诞生解决了大数据领域的数据更新和OLAP,但是其缺点也是明显,使用时最好考虑如下。 一、情况 服务器情况:5台8Core32

    相关 Apache Kudu

    前言    在Kudu出现前,由于传统存储系统的局限性,对于数据的快速输入和分析还没有一个完美的解决方案,要么以缓慢的数据输入为代价实现快速分析,要么以缓慢的分析为代价实

    相关 kudu

    kudu kudu:面向结构化数据的开源的table存储引擎,支持低延迟的随机存取以及高效的分析处理 Kudu管理的是类似关系型数据库的结构化的表,表结构由类Sql的S