首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Hive join表重复数据多,任务运行慢

  • 25-03-07 23:23
  • 4533
  • 5505
blog.csdn.net

 #Hive常见故障 #大数据 #生产环境真实案例 #Hive #离线数据库 #整理 #经验总结

说明:此篇总结hive常见故障案例处理方案 结合自身经历 总结不易 +关注 +收藏 欢迎留言

更多Hive案例汇总方案 解决方案:请往下翻

Hive join表重复数据多,任务运行慢

问题

MapReduce任务运行缓慢。

原因

join的两表关联的key值字段存在大量重复数据,join产生类似笛卡尔积,导致写出数据膨胀,任务运行慢。从MapReduce任务日志中可以看到写出很多数据:

解决方法

查询两表join on条件字段值的分布情况,可以将大key提取出来进行单独处理,结果集使用union all进行拼接。

更多Hive案例汇总方案 (点击跳转) :

Hive常见故障多案例维护宝典 --项目总结(宝典一)

Hive常见故障多案例维护宝典 --项目总结(宝典二)

目录内容如下:

架构概述
【1】参数及配置类常见故障
  • 执行set命令的时候报cannot modify xxx at runtime.

  • 怎样在Hive提交任务的时候指定队列?

  • 如何在导入表时指定输出的文件压缩格式

  • desc描述表过长时,无法显示完整

  • 增加分区列后再insert数据显示为NULL

  • 如何设置hive on spark 模式及提交任务到指定队列

  • hive on spark应用如何设置spark应用的参数?

  • 如何设置map和reduce个数

  • MapReduce任务内存溢出问题处理

  • 动态分区方式插入数据,创建过多文件/分区

  • mapjoin相关参数

  • Tez引擎和MapReduce引擎执行结果不同


【2】任务运行类常见故障
  • Hive任务运行过程中失败,重试成功

  • 执行select语句报错

  • drop partition操作有大量分区时操作失败

  • localtask启动失败

  • 切域后Hive二次开发样例代码报错

  • 输入文件数超出设置限制导致任务执行失败

  • 任务执行中报栈内存溢出导致执行任务失败

  • 对同一张表或分区并发写数据导致任务失败

  • Hive任务失败,报没有HDFS目录的权限

  • Metastore连接数过高导致hive任务执行慢或任务失败

  • bonecp参数含义解析

  • 连接Metastore超时,导致任务失败

  • 数据查询异常,部分字段为Null

  • return code 1:unable to close file

  • Tez和MapReduce引擎下,Hive进行join的结果不一致

  • Hive表里有数据count无结果

  • hive-sql报values太长

  • 执行hive-sql插入数据重复

  • tez引擎写入的数据,切换mr引擎后查询不出来


【3】SQL使用类常见故障
  • join中非常规join on写法导致任务运行慢

  • 视图中多表union all,视图外指定分区查询慢

  • over(partition by orde by)使用同一字段,MapReduce任务运行慢

  • join on条件中使用or

  • SQL扫描分区过多,元数据SQL拼接过长报错

  • join表重复数据多,任务运行慢

  • SQL过于复杂,嵌套过多,导致HiveSQL编译时间过长

  • join on中加判断,导致MapReduce任务运行慢

  • join on中带不等于条件,导查询的数据都为Null

  • 特殊写法导致大数据量只有一个reduce

  • cascade级联修改表字段

  • alter table drop partition删除大量分区慢、报错

  • 大分区表查询不带分区,查询慢

  • 两表关联,关联字段类型不一致

  • left join右表分区条件写在where后,查询慢

  • SparkSQL嵌套过多,大量case when

  • SparkSQL没有group by的情况下使用having

  • 设置自定义参数出现递归调用

  • 视图存在全表扫或者大量分区查询

  • 大量使用with as并在SQL中多处调用

  • insert into table values形式插入大量数据

  • 多表关联过滤条件中按in的子查询进行过滤

  • string类型字段过滤不加引号

  • 使用order by null

  • 使用浮点数进行运算

  • 并发插入同表或同分区


最后

谢谢大家 @500佰

注:本文转载自blog.csdn.net的500佰的文章"https://blog.csdn.net/m0_57874805/article/details/145405661"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

111
大数据
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top