hive 优化的几种方式(转)

本文介绍了Hive的多种优化方法,包括随机抓取策略、本地运行模式、并行计算、严格模式、Hive排序、数据倾斜处理、合并小文件、Map和Reduce数量控制以及JVM重用等,旨在提升大数据查询效率。
摘要由CSDN通过智能技术生成

转:https://www.cnblogs.com/liudehaos/p/16405305.html

1.1 hive的随机抓取策略

理论上来说,Hive中的所有sql都需要进行mapreduce,但是hive的抓取策略帮我们 省略掉了这个过程,把切片split的过程提前帮我们做了。 set hive.fetch.task.conversion=none; (一旦进行这么设置,select字段名也是需要进行mapreduce的过程,默认是more)

Fetch抓取的模式
可以通过 set hive.fetch.task.conversion查看,有以下3种模式:
​
none:所有涉及hdfs的读取查询都走mapreduce任务;
mininal:在进行简单的select *,简单的过滤或涉及分区字段的过滤时走mr;
more:在mininal模式的基础上,增加了针对查询语句字段进行一些别名的计算操作。
以下HQL,mininal模式与more模式下都不会走mr任务:
SELECT
    sale_ord_id,
    store_id
FROM
Hive优化主要包括以下几种方式: 1. 数据分区和分桶:对数据进行分区和分桶可以将数据分散存储,提高查询效率。 2. 数据压缩:Hive支持多种数据压缩格式,如Snappy、Gzip、LZO等,通过压缩数据可以减少数据的存储空间和I/O操作,提高查询性能。 3. 数据倾斜解决:在使用Hive进行计算时,有可能会出现数据倾斜的情况,导致某些节点负载过重,影响整个计算任务的性能。可以通过调整数据倾斜的方式解决这个问题。 4. 使用索引:在查询中使用索引可以加速查询,不过需要注意的是,Hive中的索引是基于HDFS的,不同于传统数据库中的索引,需要根据具体情况使用。 5. 预编译查询:Hive支持将查询语句编译成二进制格式,以便重复使用,提高查询性能。 6. 合理使用并行执行:在Hive的查询中,可以通过设置并行度来提高查询效率,但是并行度设置过高也会导致性能下降,需要根据具体情况进行调整。 7. 数据压缩和编码:使用压缩和编码可以减少I/O操作和存储空间,提高查询性能。 8. 数据并行处理:Hive支持MapReduce和Tez两种执行引擎,可以根据具体情况选择合适的执行引擎,提高查询性能。 9. 数据格式:选择合适的数据格式可以提高查询性能,如ORC和Parquet格式可以提高查询性能。 10. 数据过滤:在查询时尽量使用过滤条件,可以减少扫描的数据量,提高查询性能。 综上所述,Hive优化需要根据具体情况进行选择和调整,需要综合考虑数据量、数据结构、查询复杂度等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小董的数据库进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值