目前项目中由于数据量巨大,导致一个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.reduce的优化
set mapreduce.map.memory.mb=8240; set mapreduce.reduce.memory.mb=8240;
set mapred.reduce.tasks =90;
3.动态分区直接可以把下面一起作为优化的设置
set mapreduce.map.memory.mb=8240; set mapreduce.reduce.memory.mb=8240; set hive.merge.mapfiles=false; set hive.exec.dynamic.partition.mode=nonstrict; set mapred.reduce.tasks =90; set mapreduce.input.fileinputformat.split.maxsize=50000000; set hive.exec.max.dynamic.partitions=500000; set hive.exec.max.dynamic.partitions.pernode=500000; set hive.exec.max.created.files=300000;
|