This document discusses using the MapReduce programming model to solve graph problems. It begins with an introduction to MapReduce, describing its history and programming model. It then provides examples of using MapReduce to solve specific graph algorithms, including breath first search, augmenting edges with degree counts, and enumerating triangles. The examples show how graph problems that don't initially seem to fit the MapReduce model can be solved through multiple MapReduce passes that iteratively process more of the graph.