We conduct an extensive experimental evaluation to compare the various join algorithms on a 100-node Hadoop cluster. First, a detailed breakdown of a MapReduce join algorithm is provided to reveal the overheads inherent in the MapReduce framework. Then, we thoroughly demonstrate the tradeoffs among the different join algorithms and the benefit that preprocessing can provide.