网站策划工具,深圳有什么公司名称,建站能赚钱吗,wordpress 搜索词大数据学习
#x1f525;系列专栏#xff1a; #x1f451;哲学语录: 承认自己的无知#xff0c;乃是开启智慧的大门 #x1f496;如果觉得博主的文章还不错的话#xff0c;请点赞#x1f44d;收藏⭐️留言#x1f4dd;支持一下博主哦#x1f91…大数据学习
系列专栏 哲学语录: 承认自己的无知乃是开启智慧的大门 如果觉得博主的文章还不错的话请点赞收藏⭐️留言支持一下博主哦 Spark Shuffle
Map 和 Reduce 在Shuffle过程中. 提供数据的称之为Map端(Shuffle Write) 接收数据的 称之为 Reduce端(Shuffle Read) 在Spark的两个阶段中, 总是前一个阶段产生 一批Map提供数据, 下一阶段产生一批Reduce接收数据。 Spark 提供2种Shuffle管理器: • HashShuffleManager • SortShuffleManager 优化后 基本和未优化的一致,不同点在于 1. 在一个Executor内, 不同Task是共享Buffer缓冲区 2. 这样减少了缓冲区乃至写入磁盘文件的数量, 提高性能 SortShuffleManager SortShuffleManager的运行机制主要分成两种一种是普通运行机制另一种是bypass运行机制。 bypass运行机制的触发条件如下 1)shuffle map task 数量小于 spark.shuffle.sort.bypassMergeThre shold200 参数的值。 2) 不是聚合类的 shuffle 算子 ( 比如 reduceByKey) 。 同普通机制基本类同 , 区别在于 , 写入磁盘临时文件的时候不会在内 存中进行排序 而是直接写 , 最终合并为一个 task 一个最终文件 所以和普通模式 IDE 区别在于 : 第一磁盘写机制不同; 第二不会进行排序。也就是说启用该机制的最大好处在于 shuffle write 过程中不需要进行数据的排序操作也就节省掉了 这部分的性能开销。 1. SortShuffle对比HashShuffle可以减少很多的磁盘 文件,以节省网络IO的开销 2. SortShuffle主要是对磁盘文件进行合并来进行文件 数量的减少, 同时两类Shuffle都需要经过内存缓冲区 溢写磁盘的场景。所以可以得知, 尽管Spark是内存迭 代计算框架, 但是内存迭代主要在窄依赖中. 在宽依赖(Shuffle)中磁盘交互还是一个无可避免的情况. 所 以, 我们要尽量减少Shuffle的出现, 不要进行无意义的Shuffle计算。