hive两大表关联优化试验

本文探讨了在Hive中对大规模呼叫结果(call_result)与销售历史(sale_history)表进行关联优化的各种策略,包括开启中间结果压缩、JVM重用、调整Map数量及开启不同级别的压缩。尽管一些优化措施减少了HDFS写入量,但CPU消耗并未显著降低。最终,通过业务理解,将程序优化为处理当天增量数据,解决了性能问题,强调了业务与技术结合的重要性。

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

呼叫结果(call_result)与销售历史(sale_history)的join优化:
CALL_RESULT: 32亿条/444G SALE_HISTORY:17亿条/439G

  • 原逻辑
    Map: 3255 Reduce: 950 Cumulative CPU: 238867.84 sec HDFS Read: 587550313339 HDFS Write: 725372805057 SUCCESS 28.1MIN

  • 开启中间结果压缩
    set hive.exec.compress.intermediate=true;
    set mapred.map.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec

    Map: 3255 Reduce: 950 Cumulative CPU: 268479.06 sec HDFS Read: 587548211067 HDFS Write: 725372805057 SUCCESS 31.6MIN
    从结果看cpu的耗时增加,这是压缩解压缩过程的消耗;HDFS读取量略有减少,可能是因为源表是RCFile存储,本身已经压缩导致,因此整体时间上没有明显减少。

  • 开启中间和最终压缩
    set hive.exec.compress.intermediate=true;
    set mapred.map.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec
    set hive.exec.compress.output=true;
    set mapred.output.compression.codec=org.apache.hadoop.io.compress.GZipCodec

    Map: 3255 Reduce: 950 Cumulat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值