spark2.2.0源码阅读---spark core包 --- shuffle

1、本文目标以及其它说明:

    本文主要是介绍shuffle包下面的类

2、shuffle包下面的数据结构说明

private[spark] class BaseShuffleHandle[K, V, C](
    shuffleId: Int,
    val numMaps: Int,
    val dependency: ShuffleDependency[K, V, C])
  extends ShuffleHandle(shuffleId)
用于捕获注册shuffle的参数。

private[spark] class BlockStoreShuffleReader[K, C]( 
从shuffle端拉取map端的数据

trait ShuffleBlockResolver {

 本类主要作用是如何通过逻辑shuffleblcokid 找到具体的物理数据

private[spark] class IndexShuffleBlockResolver(
    conf: SparkConf,
    _blockManager: BlockManager = null)
  extends ShuffleBlockResolver

通过逻辑shuffleblockid 找到具体数据的实现类

abstract class ShuffleHandle(val shuffleId: Int) extends Serializable {}

 被shufflemanager用来传递消息给任务

private[spark] trait ShuffleManager {

  1、shuffleManager是被driver以及每个executor里面的sparkenv创建的。通过本实例,向driver注册manager

executors通过本实例读写数据。

private[spark] class SortShuffleManager(conf: SparkConf) extends ShuffleManager 
 with Logging { 实现类,多了排序功能

你可能感兴趣的:(spark源码)