hive优化笔记

大小表关联

set hive.auto.convert.join = true;--大表关联小表,把小表自动加载到内存中,相当于写了一个mapjoin
set hive.mapjoin.smalltable.filesize=25000000; --默认值是25mb

 

--是否自动转换为mapjoin
set hive.auto.convert.join = true;
--小表的最大文件大小,默认为25000000,即25M
set hive.mapjoin.smalltable.filesize = 25000000;
--是否将多个mapjoin合并为一个
set hive.auto.convert.join.noconditionaltask = true;
--多个mapjoin转换为1个时,所有小表的文件大小总和的最大值
set hive.auto.convert.join.noconditionaltask.size = 10000000;

 

设置map数

set mapred.max.split.size=256000000;        -- 决定每个map处理的最大的文件大小,单位为B
set mapred.min.split.size.per.node=1;         -- 节点中可以处理的最小的文件大小
set mapred.min.split.size.per.rack=1;         -- 机架中可以处理的最小的文件大小

 

设置reduce数

两种方式
一、直接设置
set mapred.reduce.tasks=10;  -- 设置reduce的数量
二、设置单个reduce处理的数据量大小
set hive.exec.reducers.bytes.per.reducer=1073741824 -- 每个reduce处理的数据量,默认1GB

 

 

你可能感兴趣的:(hive)