If you look in the releases page , you will see that 1.0.4 corresponds to something around 0.20.20x
To give some context, here is what was discussed on the mailing list :
The "old" MapReduce API in org.apache.hadoop.mapred was deprecated in the 0.20 release series when the "new" (Context Objects) MapReduce API was added in org.apache.hadoop.mapreduce. Unfortunately, the new API was not complete in 0.20 and most users stayed with the old API. This has led to the confusing situation where the old API is generally recommended, even though it is deprecated.
So, as you can see, this is basically a retro-compatibility issue.
So, on the bottom line, if you are starting the application from 1.0.4 now, you should use mapreduce , not mapred , as this is the preferred way now, but you can use the old mapred if you have outdated applications. This means that you must use Configuration .
As for the difference between mapred and mapreduce , as explained in the excerpt above, this is mainly due to the introduction of Context objects, but there are many other changes and new classes that are not available in the old mapred .
Charles Menguy
source share