HIVE查询性能-数据块大小

Posted

tags:

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

参考技术A 通过desc formatted table_name查看表信息,包含文件数、size路径等;

desc formatted table_name 

通过totalSize/numFiles可以算出每个文件的平均大小;

当启动的map数远远大于文件数且每个文件比较大时,启动的map会copy相关文件到map本地,如果集群较大时可能会影响执行效率。

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查询性能-数据块大小的主要内容,如果未能解决你的问题,请参考以下文章

hive 查询表数据量大小

Hive 查询进阶笔记

Hive 联合所有性能

Hive架构原理和性能优化

HAWQ与Hive查询性能对比测试

Hive 查询性能调优