spark shuffle

窄依赖 narrow dependency

map,filter,union ,

join(co-partitioned)制定了父RDD中的分片具体交给哪个唯一的子RDD

并行的,RDD分片是独立的。

只依赖相同ID的分片

range分片

one to dependency

range dependency

内部可以previously computed partition

可以将计算合并,可以极大的提升效率,编写的时候可能是多个函数,执行的时候合并成一个函数,极大的减少了零碎内存或磁盘资源。

宽依赖

groupByKey,join with inputs not co-partitioned

多个子RDD的分片会依赖同一个父RDD分片

或者说同一个父RDD的分片都有多个子RDD的分片使用。

会产生shuffle, 在产生shuffle之前会产生新的stage(stage在获取外部数据和shuffle前产生)

shuffle dependency

【hash shuffle,sort shuffle】

过多的shuffle会影响性能,shuffle调优会有很多经验,待总结

原文地址:https://www.cnblogs.com/fkissx/p/5418965.html