The number of reduces for the job is set by the user via . . . . . . . .

jobconf.setnumtasks(int)
jobconf.setnumreducetasks(int)
jobconf.setnummaptasks(int)
all of the mentioned

The correct answer is: D. all of the mentioned

The number of reduces for the job is set by the user via the following methods:

  • jobconf.setnumtasks(int): This method sets the total number of tasks for the job. The number of reduces is a subset of the total number of tasks.
  • jobconf.setnumreducetasks(int): This method sets the number of reduce tasks for the job. The number of reduce tasks must be a positive integer.
  • jobconf.setnummaptasks(int): This method sets the number of map tasks for the job. The number of map tasks must be a positive integer.

The number of reduces is typically set to be equal to the number of output partitions. The number of map tasks is typically set to be equal to the number of input splits. However, the user can specify any number of reduces and map tasks.

The number of reduces and map tasks affects the performance of the job. A higher number of reduces and map tasks will result in a faster job, but it will also use more resources. The user should choose the number of reduces and map tasks that provides the best balance between performance and resource usage.