欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 讲一下Spark的shuffle过程

讲一下Spark的shuffle过程

2025/8/18 18:04:16 来源:https://blog.csdn.net/Freddycsf/article/details/145978105  浏览:    关键词:讲一下Spark的shuffle过程

首先Spark的shuffle是Spark分布式集群计算的核心。
Spark的shuffle可以从shuffle的阶段划分,shuffle数据存储,shuffle的数据拉取三个方面进行讲解。

首先shuffle的阶段分为shuffle的shuffle write阶段和shuffle read阶段。shuffle write的触发条件就是上游的Stage任务shuffle Map Task完成计算后,会哪找下游Stage的分区规则重新分区,shuffle的操作逻辑就每个shuffl map task将数据按目标分区写入本地磁盘,生成shuffle 中间文件。
shuffle read的出发条件就是下游的result Stage任务运行Result task任务启动的时候,需要从上游节点拉取属于自己分区的数据,拉取数据后,shuffle read可能哪找操作的指令进行reduceByKey,或者sortByKey等操作。

然后shuflle的中间文件结果的存储是通过shuffle manager管理,默认使用SortshuffleManaer,存储方式就是每个shuffle Map Task会生存一个文件,包含所有分区的数据,然后附带一个记录文件各个分区的偏移量,然后我们默认使用的SortShuffleManager会自动的对文件额索引文件进行合并处理,减少文件数量,降低磁盘的IO压力,从而提高shuffle效率。

然后第三个就是数据的拉取阶段,是通过readSuffle从各个节点去拉群。首先Driver中的MapOutputTraver记录所有ShuffelMapTak的任务,下游Task想Tractorcah查询目标数据位置,然后进行拉群,拉去后就会进行数据处理,一般都是在内存当中进行处理,如果内存不足,就会溢写出到磁盘当中。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词