Catalin’s Reviews > Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems > Status Update

Catalin
Catalin is on page 525 of 1054
MapReduce is a programming model used to process massive volumes of data across distributed computer clusters. One such example is the Hadoop Distributed File System (HDFS).
Jun 11, 2026 12:14PM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

flag

Catalin’s Previous Updates

Catalin
Catalin is on page 536 of 1054
The CAP Theorem states that distributed data stores can simultaneously provide at most two of three guarantees: Consistency (all nodes see the same data), Availability (every request receives a response), and Partition Tolerance (the system continues to operate despite network failures)
9 hours, 49 min ago
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 536 of 1054
14 hours, 13 min ago
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 532 of 1054
This is a disadvantage because a job's output is only considered valid when the job has completed successfully. Otherwise the temp file contents are discarded -> the next job cannot continue. To manage these dependencies some workflow schedulers have been developed for Hadoop.
Jun 11, 2026 12:41PM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 532 of 1054
MapReduce jobs are usually chained together into a workflow, such that the output of one job becomes the input to the next job, but from the frameworks pov, they are 2 separate independent jobs.

Therefore, these chained MapReduce jobs are not really like robust pipelines, and more like a sequence of commands where each command's output is written to a temp file, and the next command reads from the temp file.
Jun 11, 2026 12:40PM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 528 of 1054
The MapReduce scheduler tries to run each map function (which can be parallelized) on one of the machines that stores a replica of the input file if the machine has enough RAM and CPU resources.

This is called "putting the computation near the data" and it saves copying the input file over the network, reducing network load and increasing locality.
Jun 11, 2026 12:28PM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 527 of 1054
MapReduce has 4 steps.

Step 1 is to READ the set of input files and break them up into records.
Step 2 is where the MAP function is called to extract key value pairs from each record.
Step 3 is SORTING all of the key value pairs by key for further processing
Step 4 is REDUCE where the reducer function iterates over the sorted key-value pairs and produces output records like counts and more.
Jun 11, 2026 12:22PM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 526 of 1054
HDFS basically has a process running on each machine which exposes a network service that allows other nodes from the distributed network to access files stored on that machine. So HDFS creates one big file system that can use the space on the disks of all machines running the process.

Azure Blob Storage and AWS S3 are similar to HDFS.
Jun 11, 2026 12:15PM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 510 of 1054
Jun 11, 2026 06:59AM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 461 of 1054
Jun 10, 2026 12:31PM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Catalin
Catalin is on page 446 of 1054
Jun 09, 2026 11:26AM
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


No comments have been added yet.