"mapred.tasktracker.map.tasks.maximum"refers to the number of map tasks that should be run on each node, and not the number of nodes that will be used for each map task. In the Hadoop architecture, for each node (slave) and 1 job tracker, there is 1 tasktracker per master node (master). Therefore, if you set the property mapred.tasktracker.map.tasks.maximum, it will only change the number of map tasks that will be performed per node. The range "mapred.tasktracker.map.tasks.maximum"is from 1/2*cores/nodeto2*cores/node
The number of map tasks you want as a whole should be set using setNumMapTasks(int)