hive部分:hive的优化,MapReduce的优化

本文介绍了如何优化Hive SQL查询,包括使用EXPLAIN命令查看执行计划、启用本地模式和并行计算以提高效率。此外,还讲解了严格模式、Hive的排序方式、Join操作优化以及Map-Side聚合等技巧,旨在提升Hive在大数据处理中的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hive 核心思想:

把 Hive SQL 当做 Mapreduce 程序去优化。

以下 SQL 不会转为 Mapreduce 来执行:

select 仅查询本表字段; where 仅对本表字段做条件过滤。

explain 命令可以显示执行计划:

EXPLAIN [EXTENDED] query; EXTENDED 可以看到更详细 的信息。

本地模式提高执行效率

本地模式:

mapreduce 任务运行在一台节点上,该节点把需要的资源从其他机器 copy 过来

集群模式:

mapreduce 任务在 hadoop 集群中执行 开启本地模式:

set hive.exec.mode.local.auto=true;

注意:

hive.exec.mode.local.auto.inputbytes.max 默认值为 128M,表示加载文件的最大值,若 大于该配置仍会以集群方式来运行

查询的数据在数据量不大的表中,这种情况使用本地模式,数据量大时使用集群模式

并行计算

hive 执行 sql 默认是顺序执行,如下 sql 如果使用并行计算会大大提高效率,但是集群 压力也增大:

select wc.col1,bk.col2 from
(select count(*) as col1 from wordcount) wc,
(select count(*) as col2 from bucket) bk;

两条子查询可以使用并行计算

通过设置以下参数开启并行模式:

set hive.exec.parallel=true;

注意:

hive.exec.parallel.thread.number

代表一次 SQL 计算中允许并行执行的 job 个数的最大值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值