美文网首页
聊聊spark shuffle

聊聊spark shuffle

作者: frb502 | 来源:发表于2019-10-10 17:08 被阅读0次
    分苹果副本1.png

    分苹果

    我们先以生活中的个小故事来个开场白,小王今年家里苹果丰收,总共摘了三大筐的苹果,小王准备按照大、中和小规格包装成礼盒放到商场里卖,
    小王身边刚好有3个人,协作完成分拣和包装,小王计划分成两个阶段,第一阶段完成分拣,第二阶段完成包装,每个阶段的工作内容如下:
    第一阶段
    1.每个人负责分拣一大筐
    2.每个人按照苹果大中小规格分别放在对应的筐里
    第二阶段
    1.每个人分别按大中小收集前一阶段已经分拣好的苹果
    2.对苹果进行包装

    问题来了,什么shuffle呢?

    上面第一阶段的分拣过程到第二阶段的收集过程就是称为shuffle,shuffle是为了让相同规格的苹果(数据)聚集在一起处理,提供包装效率(吞吐量)。

    那为什么分阶段处理呢,一个人完成分拣和包装一起干不行嘛?
    1.一个完成能把分拣和包装同时一起干了,但是这简单的两个阶段,假如像富士康组装手机时那么多个零件和阶段,一个人都干了得忙的手忙脚乱吧,效率太低了。
    2.分阶段处理的好处是能把任务拆的更细,分工明确,容易实现流水线式(pipeline)生产,提高效率。

    总结:

    shuffle是为了更好实现后面的pipeline处理。

    扩展:

    上面spark模型是分阶段的批处理,如果是flink的dataflow模型,那么我们得把上面的框框改成传送带方式,实现真实的流水线作业方式

    相关文章

      网友评论

          本文标题:聊聊spark shuffle

          本文链接:https://www.haomeiwen.com/subject/npsyjqtx.html