CHI
Press Ctrl K for menu

Systems engineering 2025

Distributed Hash Sorting

Compare Hadoop and Spark sorting up to 64 GB across an eight-node cloud cluster.

64 GBAn eight-node benchmark
My role
Implemented the C++ and Java systems, provisioned the clusters, and ran the comparative benchmarks.
Outcome
Spark sorted about 2x faster than Hadoop on this workload, with scaling measured up to eight nodes.
Context
Roughly four billion BLAKE3 records. Results are specific to the tested workload and cluster.
  • C++
  • Java
  • Hadoop
  • Spark
  • OpenMP
  • Chameleon Cloud
~/hash-sorting
Screenshot of Distributed Hash Sorting

Problem

Measure how hash processing and sorting behave as parallelism increases, from shared memory to a distributed cluster. The study compares Hadoop MapReduce and Apache Spark on datasets up to 64 GB, roughly four billion 16-byte BLAKE3 records.

My contribution

I wrote the C++ and OpenMP shared-memory implementations, generated the benchmark data, and deployed the Hadoop and Spark clusters on Chameleon Cloud. I also wrote the Java implementations and Bash orchestration used to configure and run the distributed experiments.

Technical decisions

I compared the frameworks on the same sorting workload and measured scaling from one to eight nodes. That makes memory use, network shuffle, and disk I/O visible as practical constraints on distributed performance.

A single Bash orchestration command handled cluster provisioning. Automating setup made it easier to repeat the experiments with a consistent configuration.

Results

Spark sorted about 2x faster than Hadoop in this workload and cluster configuration. Scaling from one to eight nodes yielded roughly 6 to 7x speedups before network shuffle and disk I/O limited further gains. These results describe this benchmark, not a general speed advantage across workloads.

Automated provisioning reduced the observed setup time from hours to under two minutes in the project's environment.

More projects