怎么分析spark中的shuffle模块

怎么分析spark中的shuffle模块,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

创新互联建站从2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元纳溪做网站,已为上家服务,为纳溪各地企业和个人服务,联系电话:18980820575

一、Basic shuffle writer实现解析

在Executor上执行shuffle Map Task时,最终会调用shuffleMapTask的runTask,核心逻辑如下:

1.从sparkEnv中获得shuffleManager;

2.从manager中获得writer

3.调用RDD开始计算,运算结果通过writer进行持久化,持久化之前通过Aggregator来确定是否需要进行Map端聚合,然后将结果通过FileShuffleManager#forMapTask的方法写入,写入完成后,会将元数据信息写入MapStatus,然后下游的Task可以通过这个MapStatus取得需要处理的数据。

这样writer通过ShuffleDependency#partitioner来获得下游partition的数量,下游的每个partition都会对应一个文件,文件名字的格式为:“shuffle_”+shuffledId+"_"+mapId+"_"+reduceId。

由于每个shuffle Map Task需要为每个下游的Task创建一个单独的文件,因此文件的数量就是number(shuffle_map_task)*number(following_task)。这样会导致创建和打开许多文件。

后来Spark又引入Shuffle Consolidate Writer,原理是core上的第一个Task创建一个文件,该core上的后面的Task的shuffle操作都追加写入改文件,这样文件数量number(core)*number(following_task)  。

关于怎么分析spark中的shuffle模块问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


分享文章:怎么分析spark中的shuffle模块
URL网址:http://bzwzjz.com/article/ihdopo.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作 成都网站制作 成都定制网站建设 成都网站制作 定制网站建设 网站制作 成都网站设计 成都营销网站制作 成都网站建设 企业网站建设 成都网站制作 定制级高端网站建设 定制网站建设多少钱 成都网站建设 成都网站建设推广 重庆网站建设 成都网站制作 成都商城网站建设 成都响应式网站建设 高端网站建设 企业手机网站建设 网站建设