(六)hive优化详解

(六)hive优化详解

每个join基本都会触发一个reduce操作。explnin sql查看某sql的具体执行方式

1:多表关联优化:

开启map join
适用情况:多表进行关联时,所有表中只有一张表小表,此时将小表加载到内存,在map端完成连接过程,忽略了reduce操作,提高运行效率,提升20%左右性能。此时设置参数为true.开启此种优化,默认false。小表判断,默认<25M。但是不支持各种外连接使用此种优化!
hive0.1之后默认开启。set hive.auto.convert.join=true

2:开启本地模式

将hive的Job交给yarn执行太慢,hive支持本地模式
set hive.exec.mode.local.auto=true;默认为false

3:调整mapper和reduce的个数

reduce个数:由数据量大小来决定,每个reduce处理的数据量默认1G
reduce个数调整方式1:
hive.exec.reducers.bytes.per.reducer(每个reduce任务处理的数据量,默认为1000^3=1G)
hive.exec.reducers.max(每个任务最大的reduce数,默认为999)
调整reduce个数方法二;
set mapred.reduce.tasks = 15;

map的数量:通常是由hadoop集群的DFS块大小确定的,也就是输入文件的总块数,正常的map数量的并行规模大致是每一个Node是 10~100个,对于CPU消耗较小的作业可以设置Map数量为300个左右。

4:设置JVM重用

在hadoop的mapred-site.xml文件中进行参数设置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值