Hive-hive.groupby.skewindata配置相关问题调研
来源:互联网 发布:软件腰带剑多少钱 编辑:程序博客网 时间:2024/05/18 20:07
使用hive的过程中,我们习惯性用set hive.groupby.skewindata=true来避免因数据倾斜造成的计算效率问题,但是每个设置都是把双刃剑,最近调研了下相关问题,现总结如下:
- 从下表可以看出,skewindata配置真正发生作用,只会在以下三种情况下,能够将1个job转化为2个job:
select count distinct ... from ...
select a,count(*) from ... group by a
select count(*),count(distinct ...) from
- 其中,该设置下会出现的错误的是:
select a,count(*),count(distinct...) from ... group by a
解决方案,需要将语句修改为:
select a,sum(1),count(distinct ...) from ... group by a
- 不同语句在是否进行该设置下的执行对比
- 为了方便解释以上逻辑,现将UDAF相关mode解释如下:
- Group by过程中设置MODE是在UDAF的mode基础上做了一层封装,具体如下:
distinct:partitial2 final 同UDAF的final mergepartitial non-distinct:final;
distinct:complete
由以上两张表可看出,hive.groupby.skewindata就是根据distinct/non-distinct的选择,直接将mode从mergepartitial设置成对应的确定形式,但是当distinct和non-distinct同时存在时,选择就会出问题。
- TODO:
- 虽然在 Count*,count distinct … group by 中,我们可以通过将count* 替换为sum(1)来解决问题,但是具体原因还需要通过调研两个不同的UDAF的实现方式进行进一步调研。
- 如何将一个select a,count(distinct b) from tbl group by a的形式改写成map-reduce的形式?
0 0
- Hive-hive.groupby.skewindata配置相关问题调研
- Hive-hive.groupby.skewindata配置相关问题调研
- Hive - hive.groupby.skewindata环境变量与负载均衡
- Hive - hive.groupby.skewindata环境变量与负载均衡
- Hive - hive.groupby.skewindata环境变量与负载均衡
- Hive调研
- hive相关配置
- hive 使用相关问题
- hive相关问题总结
- hive双重groupby 随机前缀
- hive配置问题记录
- hive近期相关问题列表
- hive相关
- Hive相关
- hive语句优化-通过groupby实现distinct
- hive语句优化-通过groupby实现distinct
- hive语句优化-通过groupby实现distinct
- hive distinct groupby等实现原理
- 如何在C++中调用C程序?
- Unity与web交互
- iOS中手写UITableViewCell的实现与逻辑(cell固定高度展现)
- ArcGIS教程:Iso 聚类非监督分类
- MapReduce之计数器及实例
- Hive-hive.groupby.skewindata配置相关问题调研
- 回溯算法的一些案例分析(c代码实现)
- C#设计模式学习笔记-单例模式
- 初学者很实用:DAO,Service,Action 三者的含义
- TCP协议中的三次握手和四次挥手(图解)
- poj 2553 The Bottom of a Graph 【有向图tarjan 求SCC 处理出度为0的SCC】
- #ifndef#define#endif的用法
- GCD 延时执行
- android之activity