Spark性能优化之Task性能优化

  1 慢任务的性能优化:可以考虑减少每个Partition处理的数据量,同时建议开启spark.speculation(慢任务推导,当检测的慢任务时,会同步开启相同的新任务,谁先完成就认定该任务完成)。

  2 尽量减少Shuffle,例如我们要尽量减少groupByKey的操作,因为groupByKey会要求通过网络拷贝(Shuffle)所有的数据,优先考虑使用reduceByKey。因为reduceByKey会首先reduce locally。例如在进行join操作的时候,形如(k1,v1) join (k1,v2) => (k1,v3) 此时就可以进行pipeline,但是(o1) join (o2) => (o3) ,此时就会产生Shuffle操作。

  3.Repartition:增加Task数量时考虑使用(一个partition分成多个),从而更加充分地使用计算资源。

  4.Coalesce:整理Partition碎片(多个partition合成一个)时使用。

  

猜你喜欢

转载自www.cnblogs.com/yszd/p/9383592.html
今日推荐