Hive企业级调优

**

  1. 对SQL语句的优化 统计个数使用count(1),不要使用count(*)
  2. 查询字段不要select * ,使用select 字段
  3. 使用特殊的存储格式 列式存储:ORC,parquet 建表的时候 stored as orc
  4. 小表join大表(MR程序中的map端 jojn) 小表是个小文件可以分布式的缓存到集群的其他的maptask中,就不需要reduce端join
  5. 开启map端的局部聚合 默认是开启的
  6. 避免count(distinct)
  7. 进行join的时候避免笛卡儿积
  8. 适当的调整maptask的个数和reducetask的个数
  9. 测试数据在本地运行 没有问题了再放到yarn上运行 使用脚本来调度我们写的sql语句—hive -f

**

Hive中的数据倾斜

数据倾斜产生的根本原因就是shuffle ,上游的数据到下游 ,可能会出现下游数据分发不均匀的这种情况

解决方法

1:重写分区逻辑
2:重新设计key—>打散key
3:增加reduce 的个数
4:增加reduce的内存
5:先在map端进行局部聚合 再到reduce端进行全局聚合 会减少reduce端的压力
6:将reduce的join变成map端的join
7:避免reduce能不要reduce就不要reduce

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值