Optimizing Parallel Job Performance In Data-Intensive Clusters