Hive调优(简略版)

本文探讨了Hive分区操作中的问题及其解决方案,通过调整hive.exec.max.dynamic.partitions.pernode、hive.exec.max.dynamic.partitions和hive.exec.max.created.files等配置参数来应对动态分区过多导致的错误。此外,还详细讲解了处理Hive内存溢出的方法,包括正确配置Yarn和MapReduce的内存参数,并在内存紧张时关闭MapJoin。最后,提出了通过分批处理数据和利用分区、分桶采样来提升Hive查询效率的策略。
摘要由CSDN通过智能技术生成

Hive分区

动态分区插入数据时,因为创建的目录较多、文件较多,而导致系统报错,如何处理?

可以通过hive配置,增加动态分区支持的目录数,和创建的文件数。
set hive.exec.max.dynamic.partitions.pernode=10000;
set hive.exec.max.dynamic.partitions=100000;
set hive.exec.max.created.files=150000;

Hive内存溢出

Yarn 内存配置

yarn.nodemanager.resource.memory-mb、yarn.scheduler.maximum-allocation-mb配置的值要保持一致,将主机剩余的可用内存,都划分到这两个配置中。比如系统一共分配了32G内存,系统和程序已经使用了12G内存,剩下20G内存,这两个配置就都配置为20G。
yarn.app.mapreduce.am.command-opts(JVM内存)的值也要同步修改为略小的值,格式:-Xmx1024m。

 MR内存配置

根据需求进行调配,但此处的配置不能高于Yarn的内存配置。
mapreduce.map.memory.mb和mapreduce.reduce.memory.mb的内存设置,要大于mapreduce.map.java.opts、mapreduce.reduce.java.opts的配置。

关闭MapJoin

MapJoin能够提高hive分析性能,但是占用

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

竹长大大

客官,赏个银子吧,别下次一定了

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

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

打赏作者

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

抵扣说明:

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

余额充值