记录一次服务器大中间表优化的问题(数据倾斜的解决)
背景:每天大数据平台核心就是出报表,而核心的中间表底层是大量的报表都会依赖它运行,我们称这个报表为142.(因为报表我们这边编号是142)。预计依赖于它的报表有几十个展示。
问题现象:每天142报表的运行时间达到10---15小时。导致底层报表计算大量延迟。于是进行报表排查和重整sql逻辑。
分析sql过程发现除了普通查询和计算,核心有6个left join。于是进行left join每个测试。发现最后两个left join分别耗时3--7小时,于是定位到需要优化的点。
倾斜点分析:首先跑hive 起MR的时候到yarn观察,发现其中会出现一些容器跑得很久,初步判断是数据倾斜。于是对left join的关联key进行分布分析。发现总体确实均匀,但是个别key达到其他普通量的百倍。再次定位到了数据倾斜的点了。
问题解决:
1.和业务商量,这些大量倾斜的数据是否需要归入计算,能否筛除,业务那边是说不行。
2.将最后两个left做成了分段sql。因为每次left join倾斜部分是关联不上的,于是将这部分数据先查询到中间表temp1.数据计算后,将temp1多余字段补null然后两部分unionall起来,这时候left join的结果值是一致的,只是数据顺序性变了(询问了sql开发顺序变不会对报表造成影响),其实即使需要left join纳入计算,筛选出来后再去计算也会比直接丢一个sql里面数据倾斜块,因为key不会选择关联的内容。)
优化后报表30分钟出数,生产繁忙情况是2小时(优化的带来不好的地方,多段sql 容易起多个MR。而MR队列机制会导致某个MR在机器繁忙时候多次排队过程造成等待时间过长)。测试上线没问题,后续出数正常
转载于:https://www.cnblogs.com/yaohaitao/p/11465413.html
记录一次服务器大中间表优化的问题(数据倾斜的解决)相关推荐
- 【hive】数据倾斜-大表小表join优化mapjoin
真正让你明白Hive调优系列3:笛卡尔乘积,小表join大表,Mapjoin等问题 0.Hive中的优化分类 真正想要掌握Hive的优化,要熟悉相关的MapReduce,Yarn,hdfs底层源 ...
- Elasticseach:从微服务架构演变到大宽表思维的架构转变
序言 图示:Elasticsearch 在DB-Engine综合排名第8 Elasticsearch 简称"ES", 在DB-Engine 综合排名第8,已经持续了相当长的时间,按 ...
- spark 宽表 mysql_扒一扒某厂的新零售用户画像系统大宽表 | 知识整理
扒一扒某厂如何构建新零售领域中用户画像的大宽表.字数不多,就600字. 用户画像系统的维度表构建 画像大维表是一个画像系统所支持的所有标签的元数据,一个体系完整的画像设计范围广,一般是由很多团队共同构 ...
- 大数据之数据倾斜剖析
1.1 绪论 数据倾斜是大数据领域绕不开的拦路虎,当你所需处理的数据量到达了上亿甚至是千亿条的时候,数据倾斜将是横在你面前一道巨大的坎. 迈的过去,将会海阔天空!迈不过去,就要做好准备:很可能有几周甚 ...
- 大数据技术之_19_Spark学习_07_Spark 性能调优 + 数据倾斜调优 + 运行资源调优 + 程序开发调优 + Shuffle 调优 + GC 调优 + Spark 企业应用案例
大数据技术之_19_Spark学习_07 第1章 Spark 性能优化 1.1 调优基本原则 1.1.1 基本概念和原则 1.1.2 性能监控方式 1.1.3 调优要点 1.2 数据倾斜优化 1.2. ...
- rdd数据存内存 数据量_Spark 性能优化(二)——数据倾斜优化
1.2 数据倾斜优化 1.2.1 为何要处理数据倾斜(Data Skew) 什么是数据倾斜?对 Spark/Hadoop 这样的大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜. 何谓数据倾斜?数据 ...
- Hive 性能优化(全面)解决数据倾斜等问题
Hive性能优化(全面) 1.介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业运行效率相对比较低,比如即使有几 ...
- Hive性能优化(全面)解决数据倾斜等问题
Hive性能优化(全面) 1.介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业运行效率相对比较低,比如即使有几 ...
- 大数据 -- 数据倾斜
离线计算的数据倾斜问题 数据倾斜就是指我们在计算数据的时候,数据的分散度不够,导致大量的数据集中到一台或者几台机器上,这些数据的计算速度远远低于平均计算速度,导致整个计算过程很慢. Hadoop中的数 ...
最新文章
- F5与NetScaler比较
- 异常详细信息: System.ArgumentException: 不支持关键字: “metadata”。
- 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(六) MiniGUI 提供的非 GUI/GDI 接口...
- 在下载jar包时,要有三个包,分别为使用的把class、查看文档的api、查看源代码的资源包...
- 利用cross join 构造大量测试数据
- python 2 类与对象
- 前端学习(1331):mongoose第三方模块
- springside 4 web-init 启动
- Bzoj 3226: [Sdoi2008]校门外的区间
- vmware vsphere powercli 因为在此系统中禁止执行脚本
- 零基础如何用 15 行 Python 代码搞定网易云热门歌单?
- 【Augmented Reality】增强现实中的光学透射式头盔显示器的标定深入
- php 百科源码,php源码是什么意思
- 实战Vue:基于Vue的移动端购物车单界面实现
- Python 学习笔记:class
- 身为管理者必须会讲的68个小故事
- 软件设计师 软考 真题练习 (三)
- CSS3实现边框线条动画特效
- python processpoolexecutor_理解Python的PoolExecutor
- 关于office及edge浏览器无法登录微软账号的问题
热门文章
- 洛谷 P1404 平均数
- Matlab Tricks(三十) —— 任意区间的均匀分布
- nefu 519 昨日重现
- [NOIP2012提高组] CODEVS 1200 同余方程(扩展欧几里德算法)
- VB之修改机器码达到WG
- Caused by: org.springframework.beans.NotWritablePropertyException
- 编程输出2的90次方的精确值
- HDU 4336 Card Collector(容斥原理+状态压缩)
- 关于Request.ServerVariables(HTTP_REFERER)
- 手把手·从零开始撸Docker 系列一