当前位置:   article > 正文

Hive on Spark生产调优之Job和Join优化_hive on spark 优化

hive on spark 优化

目录

1、Job优化

1.1、Map端优化

1.1.1 读取小文件优化

1.1.2 增大map溢写时输出流buffer 

1.2Reduce端优化

1.2.1合理设置Reduce数

1.2.2输出产生小文件优化

1.2.3增大reduce缓冲区,减少拉取次数

1.2.4调节reduce端拉取数据重试次数

1.2.5 调节reduce端拉取数据等待间隔

1.2.6 合理利用bypass

1.3整体优化

1.3.1调节数据本地化等待时长

1.3.2 使用堆外内存

1.3.4调节连接等待时长

2、Join优化

2.1.广播Join

2.1.1通过参数指定自动广播

2.1.2强行广播

2.2 SMB Join


1、Job优化

SortShuffle优化流程

1.1、Map端优化

map-side预聚合,就是在每个节点本地对相同的key进行一次聚合操作,类似于MapReduce中的本地combiner。map-side预聚合之后,每个节点本地就只会有一条相同的key,因为多条相同的key都被聚合起来了。其他节点在拉取所有节点上的相同key时,就会大大减少需要拉取的数据数量,从而也就减少了磁盘IO以及网络传输开销。

RDD的话建议使用reduceByKey或者aggregateByKey算子来替代掉groupByKey算子。因为reduceByKey和aggregateByKey算子都会使用用户自定义的函数对每个节点本地的相同key进行预聚合。而groupByKey算子是不会进行预聚合的,全量的数据会在集群的各个节点之间分发和传输,性能相对来说比较差。

SparkSQL本身的HashAggregte就会实现本地预聚合+全局聚合。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号