t

org.apache.spark.network.shuffle

MergedShuffleFileManager

trait MergedShuffleFileManager extends AnyRef

The MergedShuffleFileManager is used to process push based shuffle when enabled. It works along side ExternalBlockHandler and serves as an RPCHandler for org.apache.spark.network.server.RpcHandler#receiveStream, where it processes the remotely pushed streams of shuffle blocks to merge them into merged shuffle files. Right now, support for push based shuffle is only implemented for external shuffle service in YARN mode.

Annotations
@Evolving()
Since

3.1.0

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MergedShuffleFileManager
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def applicationRemoved(appId: String, cleanupLocalDirs: Boolean): Unit

    Invoked when an application finishes.

    Invoked when an application finishes. This cleans up any remaining metadata associated with this application, and optionally deletes the application specific directory path.

    appId

    application ID

    cleanupLocalDirs

    flag indicating whether MergedShuffleFileManager should handle deletion of local dirs itself.

  2. abstract def finalizeShuffleMerge(msg: FinalizeShuffleMerge): MergeStatuses

    Handles the request to finalize shuffle merge for a given shuffle.

    Handles the request to finalize shuffle merge for a given shuffle.

    msg

    contains appId and shuffleId to uniquely identify a shuffle to be finalized

    returns

    The statuses of the merged shuffle partitions for the given shuffle on this shuffle service

    Exceptions thrown
  3. abstract def getMergedBlockData(appId: String, shuffleId: Int, shuffleMergeId: Int, reduceId: Int, chunkId: Int): ManagedBuffer

    Get the buffer for a given merged shuffle chunk when serving merged shuffle to reducers

    Get the buffer for a given merged shuffle chunk when serving merged shuffle to reducers

    appId

    application ID

    shuffleId

    shuffle ID

    shuffleMergeId

    shuffleMergeId is used to uniquely identify merging process of shuffle by an indeterminate stage attempt.

    reduceId

    reducer ID

    chunkId

    merged shuffle file chunk ID

    returns

    The ManagedBuffer for the given merged shuffle chunk

  4. abstract def getMergedBlockDirs(appId: String): Array[String]

    Get the local directories which stores the merged shuffle files.

    Get the local directories which stores the merged shuffle files.

    appId

    application ID

  5. abstract def getMergedBlockMeta(appId: String, shuffleId: Int, shuffleMergeId: Int, reduceId: Int): MergedBlockMeta

    Get the meta information of a merged block.

    Get the meta information of a merged block.

    appId

    application ID

    shuffleId

    shuffle ID

    shuffleMergeId

    shuffleMergeId is used to uniquely identify merging process of shuffle by an indeterminate stage attempt.

    reduceId

    reducer ID

    returns

    meta information of a merged block

  6. abstract def receiveBlockDataAsStream(msg: PushBlockStream): StreamCallbackWithID

    Provides the stream callback used to process a remotely pushed block.

    Provides the stream callback used to process a remotely pushed block. The callback is used by the org.apache.spark.network.client.StreamInterceptor installed on the channel to process the block data in the channel outside of the message frame.

    msg

    metadata of the remotely pushed blocks. This is processed inside the message frame

    returns

    A stream callback to process the block data in streaming fashion as it arrives

  7. abstract def registerExecutor(appId: String, executorInfo: ExecutorShuffleInfo): Unit

    Registers an executor with MergedShuffleFileManager.

    Registers an executor with MergedShuffleFileManager. This executor-info provides the directories and number of sub-dirs per dir so that MergedShuffleFileManager knows where to store and look for shuffle data for a given application. It is invoked by the RPC call when executor tries to register with the local shuffle service.

    appId

    application ID

    executorInfo

    The list of local dirs that this executor gets granted from NodeManager

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped