Kylin3.1.2实战--调优CUBE构建数据倾斜优化

Posted 梦里繁花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kylin3.1.2实战--调优CUBE构建数据倾斜优化相关的知识,希望对你有一定的参考价值。

kylin构建时数据倾斜发生情况及解决方案一览:

1)未开启重新分发中间表  (kylin.source.hive.redistribute-flat-table: false的时候,默认为True)

   问题分析:先考虑启动Kylin自带缓解数据倾斜方案,也就是重分发中间表。

 解决方案:开启重分发中间表kylin.source.hive.redistribute-flat-table:true

 

2)开启重分发表且设置share by维度

   问题分析:设置share by维度之后,数据会按照share by维度分发,数据倾斜说明该项不适合作为share by列

   解决方案:1、选取其他share by列  2、去掉share by列

 

3)开启重分发表且未设置share by维度

   问题分析:在Build Base Cuboid (构建基础cuboid)的Mapper就是重分发中间表一步的reducer,所以数据倾斜实质是重分发表中reduce数据不均衡导致。网上大多资料显示未设置share by维度时,按照distribute by rand分发,但那是Kylin2.X的做法,在Kylin3.X中引入了参数ylin.source.hive.redistribute-column-count(重分配列的数量,默认值为 3),如果不设置的该参数就会在第二步时distribute by rowkeys的前3列,这也是我们一般需要将Rowkeys中超高基前移的原因。如果Rowkeys前三列属性保证数据均衡,就会导致空有重分发表依旧数据倾斜

   解决方案:1、将超高基维度前移  2、 设置合适的share by列  3、增加ylin.source.hive.redistribute-column-count个数,直到能满足均匀分布要求

 

以上是关于Kylin3.1.2实战--调优CUBE构建数据倾斜优化的主要内容,如果未能解决你的问题,请参考以下文章

Kylin实战—— Cube构建流程

Kylin实战—— Kylin Cube构建优化以及增量构建Cube

Kylin实战—— Kylin Cube构建算法

CDH构建大数据平台-集群配置优化实战之HDFS集群调优

Oracle OWB Cube 负载 SQL 调优

BI之SSAS完整实战教程3 -- 创建第一个多维数据集.docx