Spark/Hive性能优化建议

一、查看执行计划和Spark的执行ui界面   

        不管是spark还是hive,不要相信自己的代码,一定要去看执行计划和spark的执行ui界面。

踩过的坑…一开始还切过hive计算,发现mapjoin不起效果,直接hint方式没用,还需要设置最小的mapjoin数据大小的参数。同时hive中不同的是,如果mapjoin分发内存溢出,那么会有备用执行stage来代替。而spark走了broadcast hash join失败了就是内存溢出就推出了。


二、分析SparkSql慢的原因

        spark中分析sql慢的原因可以从以下几点出发:

1)、观察哪个stage慢;

2)、对比执行计划分析到慢的是哪段代码;

3)、慢的原因是什么;

4)、如果倾斜那么可以采用mapjoin,过滤,随机数,union等方式主要看业务;

5)、如果数据不倾斜可能是task的处理量太大导致shuffle write很大,这样就要扩大task数。

三、Spark中的mapjoin最好放一起执行

        spark中mapjoin最好放一起执行。是执行顺序的问题。我上面有改几个leftjoin的位置。他这个计划是从上到下来的,多个mapjoin的话会放在一个stage运行。

四、Spark中尽量使用temp view的方式

        spark中可以使用temp view的方式,节省写入hdfs和读取hdfs的过程,数据量一大主要读取至少5min已上,比较耗时,这个时候就不建议分步走临时表,会有很大的损耗。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值