官网的话

什么是Shuffle
In Spark, data is generally not distributed across partitions to be in the necessary place for a specific operation.
During computations, a single task will operate on a single partition - thus,
to organize all the data for a single reduceByKey reduce task to execute,
Spark needs to perform an all-to-all operation. It must read from all partitions to find all the values for all keys,
and then bring together values across partitions to compute the final result for each key - this is called the shuffle.

我直接复制了整段话,其实用概括起来就是:

把不同节点的数据拉取到同一个节点的过程就叫做Shuffle

有哪些Shuffle算子
Operations which can cause a shuffle include
repartition operations like repartition and coalesce,
‘ByKey operations (except for counting) like groupByKey and reduceByKey,
and join operations like cogroup and join.

这一句话完美总结了Spark中Shuffle算子的分类:

  • 重分区算子
    (repartition ,coalesce)
  • ByKey算子
    (groupByKey ,reduceByKey)
  • Join算子
    (cogroup ,join)

详细总结三类Shuffle算子

其实官网写那几个就是最常用的了

  • 重分区算子
  1. repartition
  2. coalesce
  • ByKey算子
  1. groupByKey
  2. reduceByKey
  3. aggregateByKey
  4. combineByKey
  5. sortByKey
  6. sortBy
  • Join算子
  1. cogroup
  2. join
  3. leftOuterJoin
  4. intersection
  5. subtract
  6. subtractByKey
    (姑且把后面三个也放到Join类算子)

后记

官网说了三类,这里再加一类:

  • 去重算子
    distinct

Spark中的Shuffle算子相关推荐

  1. Spark中的Shuffle

    一.Spark  Shuffle 概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO.序列化.网 络数据传输等操作.因此,如果要让作业的性能更上一层楼, ...

  2. spark中的转换算子和行动算子区别(transformations and actions)

    算子(RDD Operations): 对于初学者来说,算子的概念比较抽象,算子可以直译为 "RDD的操作", 我们把它理解为RDD的方法即可 . 转换算子(transformat ...

  3. spark中各类key算子的用法汇总(持续更新中)

    启动方式: spark-shell --master yarn 依赖导入: import org.apache.spark.{SparkConf, SparkContext} 输出rdd的类型举例: ...

  4. Spark中的spark.sql.shuffle.partitions 和spark.default.parallelism参数设置默认partition数目

    当不跟随父对象partition数目的shuffle过程发生后,结果的partition会发生改变,这两个参数就是控制这类shuffle过程后,返回对象的partition的 经过实测,得到结论: s ...

  5. spark源码-shuffle原理分析-1-ShuffleWriter

    ShuffleWriter 1.概述 2.ShuffleHandle注册 2.1.注册时间点 2.2.向shuffleManager注册shuffle 2.2.1.BypassMergeSortShu ...

  6. spark中repartition, coalesce, partitionBy, repartitionAndSortWithinPartitions 四种重分区算子

    美图欣赏: 一.背景 spark中一共有四种重分区算子: 1.repartition 2.coalesce 3.partitionBy 4.repartitionAndSortWithinPartit ...

  7. 第36课:kaishi 彻底解密Spark 2.1.X中Sort Shuffle中Reducer端源码内幕

    第36课:kaishi 彻底解密Spark 2.1.X中Sort Shuffle中Reducer端源码内幕 本文根据家林大神系列课程编写 http://weibo.com/ilovepains 本课讲 ...

  8. Spark中的内存计算是什么?

    由于计算的融合只发生在 Stages 内部,而 Shuffle 是切割 Stages 的边界,因此一旦发生 Shuffle,内存计算的代码融合就会中断. 在 Spark 中,内存计算有两层含义: 第一 ...

  9. Spark中Task,Partition,RDD、节点数、Executor数、core数目(线程池)、mem数

    Spark中Task,Partition,RDD.节点数.Executor数.core数目的关系和Application,Driver,Job,Task,Stage理解 from:https://bl ...

最新文章

  1. git github 快速入门
  2. docker-2-简单使用docker-ce
  3. 精心分享7个小巧却强大的电脑端小软件,让人大开眼界!
  4. 四肢切割_四肢瘫痪者用大脑信号和先进的假肢完成吃饭动作
  5. Silverlight数据加载时,等待图标显示与隐藏(Loading)
  6. 一个通用Makefile详解
  7. ISA Server 2006排错最佳实践
  8. C# ref跟out
  9. MATLAB使用教程
  10. matlab 三维绘图 抛光,瓷砖抛光过程建模与仿真
  11. 支持向量机(Support Vector Machine,SVM)—— 线性SVM
  12. 一致性hash算法的应用研究学习
  13. 如何使用Blender建模“苹果”
  14. 学计算机的可以考哪种证书,自学比较容易考的证书 哪些证书有用
  15. WPF实现照片墙拼图展示特效
  16. STM32F103ZE工程移植到STM32F107VC上软件调试时死循环在while((RCC-CR RCC_CR_PLL2RDY) == 0) { }
  17. windows平台连接EVE模拟器中网络设备两种方法
  18. PHP程序员专用输入法皮肤
  19. Hadoop集群中添加Snappy解压缩库
  20. 注释、标识符、关键字、数据类型、类型转换

热门文章

  1. 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础
  2. Django从入门到放弃
  3. js 字符串编码与解码
  4. canvas浅谈 实现简单的自旋转下落
  5. 蓝桥杯---2012--比酒量(暴力)
  6. SQL定时自动备份,并将备份文件加密压缩并自动下载的实现
  7. 对多线程程序,单核cpu与多核cpu如何工作相关的探讨
  8. WCF探索之旅(五)——WCF与WebService的异同
  9. select、poll与epoll的优缺点
  10. BZOJ 1062 糖果雨