HIVE调优

HIVE调优

1.HIVE 调优:

需要调优的几个方面:

1.HIVE语句执行不了

2.HIVE查询语句,在集群中执行时,数据无法落地

HIVE执行时,一开始语句检查没有问题,生成了多个JOB,

并且一开JOB中的Map 及 Reduce 正常运行,之后便报异常包括 OOM 异常等

3.HIVE查询语句,执行时,Map或者Reduce端数据处理异常慢,导致整个执行效率低

2.调优方式:

1.分区、分桶

为什么分区或者分桶?

分区的好处,在扫描表时,会根据查询语句中的过滤条件,将固定分区中的数据加载至内存中

避免了表的全表扫描。

分桶好处? 在获取数据时,根据查询的数据,进行做hash操作,将需要获取的数据指定到具体的桶中

,这样只获取固定部分桶数据,减小了数据的加载量

2.使用外部表

外部表和普通表的区别? 删除数据时,外部表不会将HDFS中对应表路径中的数据删除

3.选择适当的文件压缩格式

1.对于刚采集过的源数据,需要用TextFile格式进行保存,需要保证源数据的格式及内容和原先一致

2.对于处理过的数据,一般对数据进行压缩保存(需要考虑实际情况)

4.命名要规范

创建表时,需要遵守:

如果数据存储在dwd中那么建表时需要将 dwd 放至 表的开端

同时后面的业务名称需要和库名用 _ 进行分隔

5.数据分层,表分离,但是也不要分的太散

数据分层:

将不同类型的数据,应当存储在不同库中,

比如 维度表 应当存储在 维度库 、原始数据应当存储在ODS库中专门做管理

表分离:

在实际业务过程中,有一些表的维度比较大,单个表的存储压力大

同时数据读取时,拉去的数据内容比较多,但是所需要的字段较少,浪费计算资源

可以将表中相同类型的信息切分至多个表中,根据实际业务需要进行读取数据

如果分的太散,那么也会造成数据冗余,并且加载表过多,计算慢

6.分区裁剪 where过滤,先过滤,后join

1.针对分区表数据,可以通过where条件进行过滤数据,之后再进行其他操作

2.适当的使用一些子查询,将子查询中的数据进行初步过滤,然后再与其他表数据进行关联

7.mapjoin (1.2以后自动默认启动mapjoin)

select /*+mapjoin(b)*/ a.xx,b.xxx from a left outer join b on a.id=b.id

相关推荐
心疼你的一切17 小时前
解密CANN仓库:AIGC的算力底座、关键应用与API实战解析
数据仓库·深度学习·aigc·cann
qq_124987075319 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
十月南城1 天前
Hive与离线数仓方法论——分层建模、分区与桶的取舍与查询代价
数据仓库·hive·hadoop
鹏说大数据1 天前
Spark 和 Hive 的关系与区别
大数据·hive·spark
B站计算机毕业设计超人1 天前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人1 天前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
AI架构师小马1 天前
Hive调优手册:从入门到精通的完整指南
数据仓库·hive·hadoop·ai
数据架构师的AI之路1 天前
深入了解大数据领域Hive的HQL语言特性
大数据·hive·hadoop·ai
Gain_chance1 天前
33-学习笔记尚硅谷数仓搭建-DWS层交易域用户粒度订单表分析及设计代码
数据库·数据仓库·hive·笔记·学习·datagrip
十月南城1 天前
Hadoop基础认知——HDFS、YARN、MapReduce在现代体系中的位置与价值
hadoop·hdfs·mapreduce