HQL排查数据倾斜

Hive数据倾斜的原因以及常用解决方案 阅读详情


如果某个key下记录数远超其他key,在join或group的时候可能会导致某个reduce任务特别慢。可能会导致下面2个问题:
1)某个reduce task,卡在99.9%半天不动
2)任务超时被杀掉

如何判断是大Key导致的问题

通过时间判断
如果某个reduce的时间比其他reduce时间长的多。才可以查看Web UI,大部分task在4分钟之内完成,只有r_000021这个task在30分钟内还没完成。
在这里插入图片描述
另外注意,这里面需要排除一种特殊情况。有时候,某个task执行的节点可能有问题,导致任务跑的特别慢。这个时候,MapReduce的推测执行,会重启一个任务。如果新的任务在很短时间内能完成,通常则是由于task执行节点问题导致的个别task慢。如果推测执行后的task执行任务也特别慢,那更能说明该task可能会有倾斜问题。

通过任务Counter判断
Counter会记录整个job以及每个task的统计信息。counter的url一般类似:
http://rm:9099/proxy/application_1498075186313_242232/mapreduce/taskcounters/task_1498075186313_242232_r_000017

1)通过输入记录数
普通的task counter如下:
在这里插入图片描述
而task=000021的counter如下,其输入记录数是2亿4000万,是其他任务的10几倍。
在这里插入图片描述
2)通过输出字符数
普通的task counter如下:
在这里插入图片描述
而task=000021的counter如下,是其他任务的几十倍:
在这里插入图片描述

如何找到大Key及对应SQL执行代码

【找到对应大Key】
一般情况下,Hive在做join的时候,会打印join的日志。我们通过日志查找大Key。
1)找到任务特别慢的那个task,打开对应日志,url类似于:
http://rm:8042/node/containerlogs/container_e115_1498075186313_242232_01_000416/hdp-ads-audit/syslog/?start=0

2)搜索日志中出现的“rows for joinkey”,如下图:
在这里插入图片描述
3) 找到时间跨度最大的那条记录,如下图:
比如[54bc0748b1c0fb46135d117b6d26885e],处理的时间从2017-08-03 11:31:30 一直到2017-08-03 11:46:35,耗时15分钟,任务依然没有结束。
在这里插入图片描述
另外,从日志中也可能看到,54bc0748b1c0fb46135d117b6d26885e已经处理了236528000条数据,实际情况该key在imei_open_app中确实有2亿3659万条数据。

【确定任务卡住的stage】
1)通过jobname确定stage
一般通过Hive的默认jobname会带上名称会带上stage阶段,如下为Stage-1。
在这里插入图片描述
2)如果jobname是自定义的,那可能没法通过jobname判断stage。需要借助于任务日志。找到执行特别慢的那个task,搜索 “CommonJoinOperator: JOIN struct” 。Hive在做join的时候,会把join的Key打印到日志中。如下:在这里插入图片描述
上图中的关键信息是struct<_col1:string,_col6:string>
这时候,需要参考该SQL的执行计划。通过参考执行计划,可以断定该阶段为stage1阶段。
在这里插入图片描述
这时候,需要参考该SQL的执行计划。通过参考执行计划,可以断定该阶段为stage1阶段。

【确定SQL执行代码】
确定了执行阶段,即stage。通过执行计划,则可以判断出是执行哪段代码时出现了倾斜。还是从上图,可以推测出是在执行下面红框中代码时出现了数据倾斜。
在这里插入图片描述

【HIVE数据倾斜常见解决办法】 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代. 阅读详情

相关推荐

Hive---数据倾斜的产生及解决方法

一、数据倾斜的定义 数据倾斜是指在并行进行数据处理的时候,由于单个partition的数据显著多余其他部分,分布不均匀,导致大量数据集中分布到一台或者某几台计算节点上,使得该部分的处理速度远低于平均计算速度,成为整个数据集处理的瓶颈,从而影响整体计算性能。 二、几种数据倾斜的解决方案 1、空值引发的数据倾斜 在数据采集时,判断导致数据倾斜的key是不是提前过滤掉了。在inner join,也就是使用内连接时,hive默认过滤掉了空值,但对于left join等等,会保留左边有的值...

qq_39872456的博客 8927

HiveQL中如何排查数据倾斜问题

如果某个key下记录数远超其他key,在join或group的时候可能会导致某个reduce任务特别慢。本文分析下join的场景。 本例子SQL如下:查询每个appid打开的次数,需要排除掉作弊的imei。 说明:表cheat_imei,7500万条,无大key,为作弊的imei。表imei_open_app,5亿6526万条,为每个imei打开的a

METON的博客 7665

补充一点记录

1、spark sql报错:Error in query: nondeterministic expressions are only allowed in。 原理:rand()等函数不能出现在join…on的后面,使用rand()函数一般解决数据倾斜的问题 如何处理:在sparksql 就直接 join on 随机值字段 。 2、杀进程: 2.1、 ps -ef | grep tomcat | grep -v "grep" | awk '{print $2}' kill -9 $id 2.2、推荐:

AnlaGodness的博客 921

Hive数据倾斜常见场景及解决方案(超全!!!)

Hive数据倾斜是面试中常问的问题,这里我们需要很熟练地能举出常见的数据倾斜的例子并且给出解决方案。数据倾斜是由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点的现象。主要表现:任务进度长时间维持在 99%或者 100%的附近,查看任务监控页面,发现只有少量 reduce 子任务未完成,因为其处理的数据量和其他的 reduce 差异过大。单一 reduce 处理的记录数和平均记录数相差太大,通常达到好几倍之多,最长时间远大 于平均时长。

weixin_51981189的博客 1万+

大数据Hive的日志管理与故障排查

分布式系统复杂性:查询执行跨多个节点,故障可能发生在任意环节多层依赖关系:Hive依赖HDFS、YARN、Metastore DB等多个外部系统日志体量巨大:大规模集群每日可产生TB级日志数据时间相关性:跨节点日志的时间同步与关联分析专业知识壁垒:需要同时理解SQL解析、MapReduce/Tez执行模型、分布式系统等多领域知识故障多样性:语法错误、性能问题、资源限制、网络故障、数据倾斜等不同类型故障的差异化排查方法有效的Hive日志管理必须解决这些挑战,提供清晰的可观测性窗口。

AI开发架构师 823

大数据开发之Hive SQL优化思路分享

Hive的优化主要分为:配置优化、SQL语句优化、任务优化等方案。 其中在开发过程中主要涉及到的可能是SQL优化这块。 优化的核心思想是: 减少数据量(例如分区、列剪裁)避免数据倾斜(例如加参数、Key打散)避免全表扫描(例如on添加加上分区等)减少job数(例如相同的on条件的join放在一起作为一个任务) HQL语句优化 1、使用分区剪裁、列剪裁 在分区剪裁中,当使用外关联时,如果将副表的过滤条件写在Where后面,那么就会先全表关联,之后再过滤。 select a.* from test1 a lef

qq_33954434的博客 528

hive任务卡在个别reduce的问题分析

最近微博有一个任务需要使用日曝光表做统计,发现这个任务很容易在stage1卡在reduce100%阶段不动,发邮件过来让帮找一下问题或者优化一下,和同事一起分析了一下原因,以下是分析过程:

快乐程序员的专栏 1万+

简述 Hive 的执行流程:从 HQL 到 MapReduce/Spark 任务

流程选择建议ETL 场景:优先使用 Spark 引擎,利用内存计算加速。超大规模批处理:MapReduce 的稳定性更优。调试工具EXPLAIN命令分析执行计划。YARN ResourceManager UI 监控任务状态。版本演进Hive 3.0 + 默认支持 Tez 引擎,延迟更低。Hive LLAP(Live Long and Process)实现亚秒级响应。

2401_83088008的博客 1266

大数据面试核心考点与高效备战指南

数据仓库作为大数据生态的核心组件,其技术栈涵盖存储计算、查询优化等关键技术。从原理层面看,Hive基于HDFS实现分布式存储,通过SQL语法糖转换MapReduce/Spark作业,这种架构决定了其与传统数据库在事务处理和延迟特性上的本质差异。工程实践中,分区表设计、执行计划调优等技能直接影响ETL效率,典型如通过MAPJOIN解决数据倾斜问题。在面试场景下,候选人需掌握从SQL编写到系统设计的完整能力链,包括窗口函数实现复杂分析、YARN资源调度策略等高频考点。本指南整合了Hive执行计划解读、LeetC

weixin_27310985的博客 325

hive sql + left join 数据缺失

hive sql + left join 数据缺失

COLMAP性能优化实战:如何用GPU加速和并行计算让重建速度提升300%

本文详细介绍了如何通过GPU加速、并行计算和参数调优显著提升COLMAP的三维重建效率。从硬件资源分配到计算流程优化,再到大型数据集的分块处理策略,全面解析了将重建速度提升300%以上的实用技巧,特别适合处理无人机航拍和室内扫描等大规模三维重建项目。

weixin_29098391的博客 202

hive 数据倾斜问题排查及 hive 优化

hive数据倾斜排查及hive优化

mn_kw的博客 1599

保姆级教程:STK 11.0 从下载到安装成功(附Matlab互联配置与常见问题解决)

本文提供STK 11.0的完整安装指南,包括下载、安装步骤、Matlab互联配置及常见问题解决方案。详细介绍了系统要求核查、分步安装流程、关键文件替换和许可证配置,确保用户能够顺利完成STK 11.0的部署并实现与Matlab的无缝对接。

weixin_30698297的博客 345

Hive数据倾斜问题解决方案

最近一段时间主要在用Hive,前几天终于还是没有逃过经典的数据倾斜问题,备受煎熬,最后终于成功解决,这里记录一下心得。 直接上干货:解决数据倾斜问题,最大的难点在于知道为什么会倾斜!!! 一般会造成数据倾斜的情况无外乎在使用 group by 或者 distinct 或 join 等的情况中,由于数据分布不均所引起,尤其是Join的情况居多,我这次是使用group by的时候发

Phono278的博客 1815

RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建

RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建(详细文档)

m0_52369979的博客 730

Linux Wireless之80211(nl80211, cfg80211, mac80211)

Linux Wireless之80211(nl80211, cfg80211, mac80211)前言在Linux无线子系统中,cfg80211、mac80211和nl80211是三个关键的组件,它们共同工作以实现对802.11设备的配置和管理。cfg80211负责内核空间的通用API,mac80211负责具体的MAC层实现,而nl80211则作为用户空间与内核空间之间的桥梁,用于配置管理和通信。Netlink 是一个 Linux 中的 socket 类型,用于在内核与用户空间之间传递事件。

DD'Notes 1479

HQL使用技巧

善用union all,多表union all会优化成一个MR job,但在使用union all聚合时,由于聚合函数、分组会使MR job数增加,消除子查询内的group by、巧用中间表(临时表、单独处理子查询内的Join等能起到的效果。此时,由于使用了distinct,因此在Map阶段不能用combine对输出结果驱虫,必须将author_id作为Key输出,在Reduce阶段再对来自于不同Map Task、相同Key的结果去重。桶表抽样是一种桶表进行优化的抽样。

weixin_45065245的博客 430

SKILL 是什么?怎么做?五分钟 带你从入门到精通

skill-creator 是 Anthropic 官方开源的“元技能”——一个专门用来创建 Skill 的 Skill。你只需要用自然语言描述想要什么功能,它会自动生成。从更宏观的视角看,Skills 的出现标志着 AI 编程的一次范式转变。在传统的 AI 编程中,代码是确定性的:1 是 1,2 是 2。但到了大模型时代,代码变得不确定——你不知道模型会输出什么,不知道它会不会突然删掉几行代码。这种不确定性让很多开发者感到不安。Skills 把这套逻辑又拉了回来。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 642

hive 数据倾斜

hadoop job解决大数据量关联时数据倾斜的一种办法

406

1. 如何使用扣子工作流一键生成儿童绘本(可以发到小红书,微信公众号图文等)

本文介绍了使用扣子智能体一键生成儿童绘本的工作流。用户只需输入绘本主题,系统会自动生成Markdown格式内容,可直接发布到优快云、小红书等平台,还支持推送至微信公众号草稿箱。操作步骤包括:访问扣子网站导入工作流源代码,输入主题试运行,查看实时进度和最终输出结果。工作流编辑器会显示每个节点的执行状态和耗时,支持通过"查看日志"功能回溯历史运行记录。文末附有工作流源代码下载链接。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1246

71、CAN总线双绞线绞距与抗共模干扰的定量关系

摘要:本文探讨了CAN总线双绞线绞距与抗共模干扰的定量关系。通过理论推导得出共模电压与绞距平方成正比,绞距越小抑制效果越好。工程实践表明,工业现场推荐绞距不超过30mm,高频干扰场景需优先优化绞距。实测数据验证了绞距均匀性的重要性,建议控制在15-25mm范围,安装时保持绞合结构完整。案例显示,将绞距从50mm改为15mm后,共模干扰从12V降至1.8V,有效解决了CAN通信问题。绞距选择需兼顾理论计算与现场实测,同时注意与屏蔽层的协同设计。

2401_88858637的博客 186

Hive 数据仓库技术全解(三):企业级生产调优(聚合优化、数据倾斜优化、小文件合并、join优化等

本文系统梳理了Hive在企业生产环境中的核心优化技术,包括YARN资源配置、执行计划分析、Map-Side预聚合、四种Join策略及其自动转换机制、三种数据倾斜解决方案(Map-Side/Skew-Groupby/Skew Join)、并行度调优、小文件合并策略等。重点剖析了聚合优化、Join优化(Reduce/Map/Bucket/SMB)、数据倾斜处理等关键场景,并详细介绍了CBO、谓词下推、矢量化查询等十余项生产必调参数。通过三个实战案例(成绩透视、连续下单、VIP等级)和9个常见问题。

lijingang2005的博客 328

从零实现深度学习框架——理解正则化(一)

本文介绍解决过拟合与欠拟合的方法——正则化,主要介绍L1和L2正则化。

日积月累,天道酬勤 3394

大数据复习篇 Top1

复习资料第一期

Lifeistoo的博客 1232

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Hive 入门学习

Apache Hive是一款分布式SQL计算的工具,其主要功能是:将SQL语句翻译成MapReduce程序运行,处理位于HDFS上的结构化数据。基于MapReduce构建分布式SOL执行引擎,主要需要两个功能组件:元数据管理和SQL解析器。元数据管理:记录数据存储位置,数据结构以及数据描述等。SQL解析器:其功能包括SQL分析,SQL到MapReduce程序的转换,提交MapReduce程序运行并收集执行结果。

weixin_44361163的博客 1822

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

exists hive中如何使用_数据仓库,Hive中使用 != 或 <>符号进行条件过滤时的坑

最近在建设数据仓库,处理数据的过程中,经常反复使用hive的HQL语句,尽管HQL和SQL语言有很多相同之处,但也并不是说HQL就能通用SQL的语法。在使用过程中要尤为注意。事情经过是这样的,我在把业务系统数据同步到数仓(数据存储在Hive)中时,在数据汇总层(DWS),对数据进行汇总处理时,发现有数据丢失的问题,经过排查,发现是在使用 <> 引发的坑。Hive 中 != 或 <...

weixin_39612297的博客 305

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: Hive调优
下一篇: DAG以及任务调度
K. Bob
博客等级 码龄8年 82粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值