大数据--hive8--hive性能调优

本文介绍了Hive性能调优的策略,包括针对大量小文件的处理,通过调整文件块大小和合并小文件来减少map数量,以及如何调整reduce数量。此外,还详细探讨了数据倾斜问题,包括理论知识、join优化、count(distinct)的处理方法和解决key值不均匀的策略。在SQL优化方面,强调了尽早过滤数据和选择所需列的重要性,以及多个job间的并行执行能力。
摘要由CSDN通过智能技术生成

目录

一:具体问题场景以及优化方案

1.1 输入为大量小文件,通过调整文件块大小,对未达到阈值的小文件进行合并,减少map数量。

1.2 调整reduce数量

二:数据倾斜问题及其解决方案

2.1数据倾斜理论知识

2.2 join优化

2.3 count(distinct )详细总结

2.4 处理key值不均匀

三:sql优化

3.1 数据过滤能够早点过滤就要早点过滤,同时需要选择所需要的列。

3.2 多个job间可以并行


一:具体问题场景以及优化方案

1.1 输入为大量小文件,通过调整文件块大小,对未达到阈值的小文件进行合并,减少map数量。

问题场景:输入文件数量多,其中很多是远远小于256 M的小文件(hdfs中文件块大小为256M).

set mapred.max.split.size = 100000000;
set mapred.min.split.size.per.node = 100000000;
set mapred.min.split.size.per.rack = 100000000;
set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; -- 表示
      -- 执行前进行小文件合并

解释:前三个参数确定合并文件块的大小,大于文件块大小256M的,按照256M来分割,小于256M,大于100M

 的,按照100M来分割,把哪些小于100M的(包括小文件和分割大文件剩下的)进行合并。

1.2 调整reduce数量

调整原则:使大数据量利用合适的reduce数;使单个reduce任务处理合适的数据量

set hive.exec.reducers.bytes.per.reduce = 500000000; (500M)
或者
set mapred.reduce.tasks = 15

解释:前者是通过控制每个reduce处理的数据量来控制reduce数,后者是直接指定reduce数量

二:数据倾斜问题及其解决方案

2.1数据倾斜理论知识

1 )数据倾斜现象:某一个或者几个reduce作业处理的数据量远高于其他的。

2)数据倾斜出现原因:数据分布不均匀,业务数据本身就有倾斜&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值