首页 > 其他分享 >【Hive】数据倾斜原因及解决方法汇总

【Hive】数据倾斜原因及解决方法汇总

时间:2022-09-19 22:46:43浏览次数:100  
标签:map join key 汇总 reduce Hive 数据量 倾斜 数据

1)数据倾斜根本原因:由于数据分布不均匀,导致map端读取的数据分布不均匀(数据长尾分布),从而使得map处理的数据量差异过大。
(2)解决思路:Hive是分阶段执行的,map处理数据量的差异取决于上一个stage的reduce输出,所以解决的根本方法就是如何将数据均匀的分布到各个reduce中

(3)出现数据倾斜的主要操作:
(a)join:使用join时,一个表较小,但是key值集中,使得数据在分发到各个reduce中的时候,某一个或几个reduce的数据远大于平均值
(b)join:大表与大表join时,分桶的判断字段0值或空值太多,而这些数据都会到一个reduce中处理,速度很慢
(c)group by:group by的维度太少,某值的数量太多(如性别sex,只有男和女,group by时只有两个维度,每个维度的数据量都很大),从而导致处理某个值数据的reduce处理非常耗时
(d)count distinct:某特殊值较多,数据将会在一个reduce中处理,处理此特殊值的reduce耗时

(4)原因概况:
(a)key值分布不均匀
(b)数据自身问题
(c)SQL语句问题

(5)数据倾斜表现:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成。因为其处理的数据量和其他reduce差异过大。
单一reduce的记录数与平均记录数差异过大,通常可能达到3倍甚至更多。 最长时长远大于平均时长。

(6)数据倾斜解决方法:
(a)参数调节:hive.map.aggr = true 在map端部分聚合
(b)参数调节:hive.groupby.skewindata=true 数据倾斜时负载均衡
(c)sql语句调节:join时选择key值分布较均匀的表作为驱动表,同时做好列裁剪和分区裁剪,以减少数据量
(d)sql语句调节:大小表join时,小表先进内存
(e)sql语句调节:大表join大表时,把key值为空的key变成一个字符串加上随机数,把倾斜的数据分到不同的reduce上,由于null值关联不上,因此处理后不影响最终结果

原文链接:https://blog.csdn.net/Asher117/article/details/108979660

标签:map,join,key,汇总,reduce,Hive,数据量,倾斜,数据
From: https://www.cnblogs.com/ccli555/p/16709384.html

相关文章

  • .NET Core/.NET5/.NET6 开源项目汇总!
    前言企业管理系统一般包含后台管理UI、组织机构管理、权限管理、日志、数据访问、表单、工作流等常用必备功能。下面收集的几款优秀开源的管理系统,值得大家入门学习。如有......
  • hive substring_index 函数
    substring_index详解substring_index(str,delim,count)str:要处理的字符串delim:分隔符count:计数例子:str=www.wikibt.comsubstring_index(str,'.',1)......
  • 启动hive
    以元数据的方式启动hive[hzy@hadoop102hive]$bin/hive--servicemetastore启动hiveservice2bin/hive--servicehiveserver2......
  • 调整Hive表默认格式为ORC踩坑
    由于集群Hive默认使用的存储格式为text,为了节省硬盘资源,因此需要对之前的脚本进行改造,最快捷的方式就是在脚本最前面加sethive.default.fileformat=orc,经过测试这个命令确......
  • https://www.cwikius.cn/archives/7935
    如想在部署的站点中使用Google广告。我们最好需要在我们的站点中添加一个Ads.txt文件。WordPress可以使用多种方法来进行添加,最好的办法可能还是通过使用插件的方式......
  • 5 号码汇总 |数据科学统计
    5号码汇总|数据科学统计在本博客中,我们将介绍5个数字摘要以及如何使用它来识别异常值,并讨论箱线图。5数字摘要是一组描述性统计数据,用于获取有关数据集的信息,但仅适......
  • MySQL:互联网公司常用分库分表方案汇总!
    一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至......
  • Hive压缩和存储
    1.压缩(1)Hive支持的压缩编码压缩格式工具算法文件扩展名是否可切分对应的编码/解码器DEFLATE无DEFLATE.deflate否org.apache.hado......
  • Mac使用经验汇总
    在此记录使用Mac的一些经验技巧。安装brew如果按照官网提示安装,巨慢无比,如下:/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/......
  • redis面试题汇总
     1redis持久化机制 redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化,当redis重启后通过把硬盘文件重新加载到内存,就能......