Hive MapReduce性能优化

Posted AI算法攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive MapReduce性能优化相关的知识,希望对你有一定的参考价值。

一、Hive任务创建文件数优化


1.1 Map端文件合并减少Map任务数量


一般来说,HDFS的默认文件块大小是128M,如果在Hive执行任务时,发现Map端的任务过多,且执行时间多数不超过一分钟,建议通过参数,划分(split)文件的大小,合并小文件。如:

set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set mapreduce.input.fileinputformat.split.minsize=516000000; -- 516M
set mapreduce.input.fileinputformat.split.maxsize=1280000000; -- 1280M
set mapreduce.input.fileinputformat.split.minsize.per.node=516000000;
set mapreduce.input.fileinputformat.split.minsize.per.rack=516000000;

这样可以减小map的任务数,可以减少中间临时文件的产生,并且也较少reduce阶段的任务数和产生的文件数。

1.2 Reduce阶段数量调整


若指定mapred.reduce.tasks参数,则用该参数值;mapred.reduce.tasks默认值为-1,表示自动计算;

若未指定mapred.reduce.tasks,Hive会自动计算reduce个数,基于以下两个配置:

hive.exec.reducers.bytes.per.reducer:

以上是关于Hive MapReduce性能优化的主要内容,如果未能解决你的问题,请参考以下文章

Hive MapReduce性能优化

Hive架构原理和性能优化

Hive优化

Hive的特性

Hive性能优化之计算Job执行优化

Hive性能优化(全面)