Acceldata
ODP

Architecture Overview

Component Diagram

Celeborn consists of three primary components: Masters (cluster coordinator), Workers (shuffle data storage), and Clients (embedded in compute engines).

Preserved image


Component Details

Master

  • Role: Cluster coordinator and metadata manager
  • Manages worker registration and health monitoring
  • Allocates shuffle slots to applications
  • Coordinates shuffle lifecycle and resource cleanup
  • Achieves HA via Raft consensus — 3, 5, or 7 nodes recommended

Port

Protocol

Purpose

9097

TCP

Master RPC — Client and Worker communication

9098

TCP

Master HTTP — Web UI and REST API

9872

TCP

Ratis — Master-to-Master Raft consensus


Worker

  • Role: Shuffle data storage and serving
  • Receives and buffers shuffle data from mapper executors
  • Replicates data to peer workers for fault tolerance
  • Serves shuffle data chunks to reducer executors
  • Supports local disk, HDFS, S3, and tiered storage backends

Port

Protocol

Purpose

9094

TCP

Worker RPC — Client to Worker communication

9096

TCP

Worker HTTP — Worker Web UI and metrics


Client

The client is embedded in compute engines and consists of two sub-components.

Component

Location

Responsibility

LifecycleManager

Driver / JobMaste

Control plane — manages shuffle metadata and slot allocation

ShuffleClient

Executor / TaskManager

Data plane — pushes and fetches shu


Shuffle Lifecycle

Every shuffle operation follows a structured seven-step lifecycle managed between the Client, Master, and Workers:

Preserved image

Step

Direction

Description

  • RegisterShuffle
  • Client → Master

    Request slot allocation for the shuffle

  • ReserveSlots
  • Client → Workers

    Reserve resources on selected workers

  • PushData
  • Executors → Workers

    Mapper executors stream shuffle data to workers

  • CommitFiles
  • Client → Workers

    Flush buffers, finalize and commit partitions

  • OpenStream
  • Client → Workers

    Prepare workers to serve data for reducers

  • ChunkFetchRequest
  • Executors → Workers

    Reducer executors fetch data chunks by partition

  • UnregisterShuffle
  • Client → Master

    Release all resources after job completion