https://123dok.org/document/yngpkr6p-large-scale-data-processing-with-mapreduce.html