Advanced version of MapReduce

rename some classes to be similar with Hadoop
add comments