groupby多个字段性能_Hive性能优化总结(一)

本文探讨了Hadoop分布式计算中的性能问题,尤其是Hive中的数据倾斜,包括Mapper、Join和Reduce阶段的数据倾斜处理。介绍了通过减少处理数据量、Mapper阶段的随机化处理、MapJoin优化、Group by倾斜的解决方案以及增加中间表和分区来提升Hive查询效率。
摘要由CSDN通过智能技术生成

前言

在数据分析师/算法工程师/数仓研发工程师的日常工作中,Hadoop(包括Hive,HDFS等组件)绝对是不可或缺的数据处理平台,虽然大数据集群和分布式并行计算提高了数据的查询效率,但相信大家也没少遇到任务卡在99%死活跑不出来的时候。所以,知其然,更要知其所以然,在本篇和下篇文章中,我们将通过对Hadoop分布式计算特性进行进一步探究,针对实际工作中遇到的Hive性能问题(特别是数据倾斜)进行对症下药的解决。

(注:阅读本文之前需要对Hadoop中的Mapreduce并行计算框架有一定的了解,知道并使用过HiveSQL)


一、分布式计算存在的问题

首先我们需要知道,在Hadoop分布式计算框架下会衍生哪些问题:

  • 数据量大不是负载重点,但「数据倾斜」会产生很多麻烦
所谓的「数据倾斜」,用通俗的话来讲,就是“一个人累死,其他人闲死”,在MapReduce程序中,大量的相同key被partition分配到一个分区里,使这个节点承受着巨大的压力,而其他节点计算完毕后要一直等待这个忙碌的节点,这样一来也拖累了整体的计算时间,使数据的生产效率十分低下。
  • jobs数比较多的作业运行效率相对比较低,原因是mapreduce作业初始化的时间是比较长的
即使只有几百行的表,如果进行多次关联多次汇总,产生十几个jobs,同样会耗时很长
  • count(distinct...)在数据量大的情况下,效率较低
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值