Distributed Programming Models For Big Data