1. A method of computing resource allocation for map-reduce job execution, the method comprising: determining the volume of input data to the map-phase and the reduce-phase of a map-reduce job prior to execution; based on said determination, selectively placing data blocks and virtual machines (VMs) for locality aware map-reduce job execution on a cluster of computing nodes in a network; wherein selectively placing data blocks and VMs comprises integrally placing the data and the VMs at selected nodes to lower data transfer network hops for a map-phase and a shuffle-phase of the map-reduce job upon execution by the VMs.