400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

16、Hive数据倾斜与解决方案

数据倾斜

1、什么是数据倾斜

由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点

2、数据倾斜的现象

在执行任务的时候,任务进度长时间维持在99%左右,查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成。因为其处理的数据量和其他reduce差异过大。

单一reduce的记录数与平均记录数差异过大,通常可能达到3倍甚至更多。最长时长远大于平均时长。

3、数据倾斜的情况

16、Hive数据倾斜与解决方案

创新互联公司网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,成都网站建设、网站建设,塑造企业网络形象打造互联网企业效应。

4、数据倾斜的原因

1)、key分布不均匀

2)、业务数据本身的特性

3)、建表时考虑不周

4)、某些SQL语句本身就有数据倾斜

5、数据倾斜的解决方案

5.1 map端聚合
--Map 端部分聚合,相当于Combiner
hive.map.aggr = true;
--有数据倾斜的时候进行负载均衡
hive.groupby.skewindata=true;

--有数据倾斜的时候进行负载均衡,当选项设定为 true,生成的查询计划会有两个 MR Job。第一个 MR Job 中,Map 的输出结果集合会随机分布到 Reduce 中,每个 Reduce 做部分聚合操作,并输出结果,这样处理的结果是相同的 Group By Key 有可能被分发到不同的 Reduce 中,从而达到负载均衡的目的;第二个 MR Job 再根据预处理的数据结果按照 Group By Key 分布到 Reduce 中(这个过程可以保证相同的 Group By Key 被分布到同一个 Reduce 中),最后完成最终的聚合操作。
5.2 SQL语句调节
5.3 典型的业务场景

本文标题:16、Hive数据倾斜与解决方案
分享URL:http://www.bluegullmedia.com/article/gjspdp.html

其他资讯

让你的专属顾问为你服务

0.1868s