Celeborn vs YARN External Shuffle Service

Architecture Comparison

The diagram below illustrates the fundamental architectural difference between YARN ESS and Celeborn. ESS scatters shuffle data across all compute nodes and creates M×N network connections. Celeborn consolidates all data for a given partition onto a single worker, reducing connections to M+N.


Feature Comparison

Feature

YARN ESS

Celeborn

Architecture

Co-located with compute nodes

Dedicated shuffle cluster

Data Location

Local disks on compute nodes

Remote shuffle workers

Network Pattern

M×N (mappers × reducers)

M+N (mappers + reducers)

I/O Pattern

Random I/O (many small files)

Sequential I/O (consolidated files)

Replication

None

Configurable (1 or 2 copies)

Node Failure

Shuffle data lost, stage retries

Data survives, job continues

Dynamic Allocation

Limited by shuffle locality

Full executor elasticity

Storage Disaggregation

Not supported

Yes — HDFS, S3 supported

Multi-Tenant Isolation

No isolation

Quota & worker tags supported

High Availability

Single point of failure

Raft-based Master HA (3+ nodes)


Performance Comparison

Metric

YARN ESS

Celeborn

Improvement

Shuffle Time

Baseline

30–50% faster

Network efficiency

Job Stability

Node failure = stage retry

Node failure = continue

Data replication

Disk I/O

Random small files

Sequential large files

2–5× throughput

Network Connections

O(M×N)

O(M+N)

Drastically reduced

Memory Pressure

On compute nodes

On dedicated shuffle nodes

Resource isolation


When to Use Celeborn vs ESS

Scenario

Recommendation

Small jobs (< 100 GB shuffle)

ESS may be sufficient

Large jobs (> 100 GB shuffle)

Celeborn recommended

Dynamic allocation required

Celeborn required

Cloud / Kubernetes deployment

Celeborn recommended

Spot / preemptible instances

Celeborn required

Multi-tenant cluster

Celeborn recommended

Frequent node failures

Celeborn recommended

Disaggregated storage needed

Celeborn required

Single-user development

ESS may be sufficient


Migration Path

Phase 1 — Pilot

  • Deploy Celeborn alongside existing ESS

  • Test with non-critical workloads

  • Compare performance metrics in parallel

Phase 2 — Gradual Rollout

  • Enable Celeborn for specific teams or jobs via worker tags

  • Monitor stability and performance

Phase 3 — Full Migration

  • Make Celeborn the default shuffle service cluster-wide

  • Disable ESS on compute nodes

  • Optimize Celeborn cluster sizing based on observed usage



  Last updated