目前项目中由于数据量巨大,导致一个sql要跑一个多小时,所以找了些可以优化的点,记录下来,以后方便使用。
1.map的优化,job在map task的过程时间较长
set mapreduce.map.memory.mb=8240;
set mapreduce.reduce.memory.mb=8240;
set hive.merge.mapfiles=false;
set mapreduce.input.fileinputformat.split.maxsize=50000000;
set hive.exec.max.created.files=300000;
2.当把一个非分区表的数据,插入到一个分区表中的配置
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set hive.merge.mapfiles = true;
set hive.merge.mapredfiles = true;
set mapreduce.map.memory.mb=4096;
set mapreduce.reduce.memory.mb=4096;
set mapred.reduce.slowstart.completed.maps=1;
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=100000;
set hive.exec.max.dynamic.partitions=100000;
set hive.exec.max.created.files=3000