Knowledgebase

Distributed Processing Frameworks Print

  • dataengineering, data, performance, guide, howto, solution, zillionkinghost, hosting
  • 0

Processing across machines.

WHAT THEY PROVIDE

Splitting work across machines Handling of machine failure Processing volumes exceeding one machine

WHAT THE DOMINANT FRAMEWORK IS

A general-purpose engine supporting batch and streaming, with interfaces in several languages.

WHAT THE PROGRAMMING MODEL IS

Operations on distributed collections, executed lazily and optimised as a whole.

WHAT LAZY EVALUATION MEANS

Nothing runs until a result is requested.

WHY THAT MATTERS

The engine optimises the whole chain, which it could not do step by step.

WHAT A SHUFFLE IS

Redistributing data across machines, required by joins and grouping.

WHY IT DOMINATES PERFORMANCE

It moves data over the network, which is far slower than computing.

WHAT REDUCES SHUFFLES

Filtering before joining Broadcasting small tables rather than shuffling both sides Partitioning data consistently

WHAT DATA SKEW IS

Some partitions far larger than others.

WHAT IT CAUSES

Most machines finishing while one continues, and frequently failing on memory.

WHAT CAUSES IT

Uneven distribution of the join or grouping key, often a dominant value or nulls.

WHAT TO DO

Handle the dominant values separately, or add randomness to spread them.

WHAT TO ESTABLISH BEFORE ADOPTING ANY OF THIS

That one machine genuinely cannot do it.


Was this answer helpful?
Back

Are you happy with your experience? Leave us a review on Trustpilot.


Trustpilot