On Traffic-Aware Partition and Aggregation in Mapreduce for Big Data Applications