hiveSQL mapreduce任务调优

发布时间 2023-04-21 13:38:23作者: 蛇啊蛇啊

set hive.merge.mapredfiles=true; --在Map-Reduce的任务结束时合并小文件
set mapred.max.split.size=30000000; -- 决定每个map处理的最大的文件大小,单位为B
--set mapred.min.split.size=10000000; --公司集群默认值
--set mapred.min.split.size.per.node=; -- 节点中可以处理的最小的文件大小
--set mapred.min.split.size.per.rack=20; -- 机架中可以处理的最小的文件大小
set mapreduce.task.io.sort.mb=50;
set mapreduce.map.memory.mb=8000;
set mapreduce.reduce.memory.mb=8000;
set mapred.reduce.tasks=600;
set hive.merge.size.per.task=20000000; --合并后文件的大小为128M左右
set hive.merge.smallfiles.avgsize=20000000; --当输出文件的平均大小小于128M时,启动一个独立的map-reduce任务进行文件merge
SET hive.exec.compress.output = true;
set hive.exec.max.dynamic.partitions=500000;
set hive.exec.max.dynamic.partitions.pernode=10000;
SET hive.exec.dynamic.partition.mode = nonstrict;
SET hive.exec.dynamic.partition = true;
set hive.exec.parallel=true;
set hive.groupby.skewindata=true;
set hive.limit.query.max.table.partition=100000;
set mapred.task.timeout=600000;