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