Communication Efficient Algorithms for Fundamental Big Data Problems