1. A method comprising: receiving a map-reduce job written in a first map-reduce language, wherein the map-reduce job is to be performed in parallel on a plurality of nodes of a plurality of clusters; selecting one or more clusters to run the map-reduce job; identifying a second map-reduce language associated with the selected clusters; converting the first map-reduce language of the map-reduce job into the second map-reduce language; and causing the map-reduce job in the second map-reduce language to be run on the plurality of nodes of the selected clusters.