2016 - 2024

感恩一路有你

数据处理的方法有哪些 hive中sql运算出现倾斜的情况,主要原因有哪些?

浏览量:1619 时间:2021-03-12 06:10:28 作者:admin

hive中sql运算出现倾斜的情况,主要原因有哪些?

1. Mapjoin是一种避免数据倾斜的方法

允许您在映射阶段执行连接操作。Mapjoin将所有小表读入内存。在映射阶段,可以直接将另一个表的数据与内存中该表的数据进行匹配。因为在映射中执行联接操作,所以可以保存reduce并更高效地运行

配置单元中有特定的操作:联接遇到问题

联接多个表时,请将小表放在联接的左侧,将大表放在联接的右侧。

执行此类联接时,配置单元中的数据将小表缓存在内存中,可以有效降低内存溢出错误的概率

2。设置参数hive.map.aggr配置单元=正确hive.groupby.skewindata=真还有其他参数

3。SQL语言调整

例如:group by维度太小:使用sum()group by替换count(distinct)完成计算

4。Streamtable

将reducer中join操作中的小表放入内存,而大表则通过流读取

原因是什么?你的照片拍得不好,基本功不达标,你需要多练练眼睛。

如果你能重做它,你可以补救它。如果你不能重做,你必须用以后的软件来补救。

纠正地平线的简单快速方法。

在PS中打开照片,输入ACR插件,选择校正工具:

沿水平线绘制一条直线:

软件自动完成旋转切削:

拍完后照片是歪的,这是怎么回事?该怎么补救呢?

调整参数

]设置hive.map.aggr=真;

设置hive.groupby.skewindata=真

hive.map.aggr=真:部分聚合操作将在map中完成,map效率更高,但需要更多内存。

hive.groupby.skewindata=真:数据倾斜时的负载平衡。当该选项设置为true时,生成的查询计划将有两个mrjob。在第一个mrjob中,map的输出结果集被随机分配到reduce中,每个reduce都进行部分聚合操作并输出结果,这样处理的结果就是可以将相同的groupby密钥分配给不同的reduce,从而达到负载均衡的目的;在第二个mrjob中,根据预处理后的数据结果,将相同的groupby密钥分发给不同的reduce密钥分发进行reduce(这个过程可以保证将相同的groupby密钥分发给相同的reduce),最后完成最终的聚合操作。

数据处理的方法有哪些 sql数据倾斜的解决方法 spark数据倾斜的解决方法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。