1.动态分区#
SET hive.exec.dynamic.partition=true;
SET hive.exec.dynamic.partition.mode=nonstrict;
SET hive.exec.max.dynamic.partitions=100000;
SET hive.exec.max.dynamic.partitions.pernode=100000;
SET hive.exec.max.created.files=100000;
2.union all并发执行#
--在使用union all的时候,系统资源足够的情况下,为了加快hive处理速度,可以设置如下参数实现并发执行
set mapred.job.priority=VERY_HIGH;
set hive.exec.parallel=true;
3.设置map reduce个数#
-- 设置map capacity
set mapred.job.map.capacity=2000;
set mapred.job.reduce.capacity=2000;
-- 设置每个reduce的大小
set hive.exec.reducers.bytes.per.reducer=500000000;
-- 直接设置个数
set mapred.reduce.tasks = 15;
4.文件合并#
-- 设置文件合并
set abaci.is.dag.job=false;
set hive.merge.mapredfiles=true;
set mapred.combine.input.format.local.only=false;
set hive.merge.smallfiles.avgsize=100000000;
-- 在map only的情况下,如上的参数如果没有生效,可以设置如下
-- 在HQL的最外层增加distribute by rand()
select * from XXX distribute by rand()
5.设置任务名称#
-- 设置名称
set mapred.job.name=${my_job};
6.设置引擎和指定队列#
set hive.execution.engine=mr;
set mapreduce.job.queuename=bigdata;