code: public static <K1,V1,K2,V2> 
    void setMapperClass(Job job, 
                        Class<? extends Mapper<K1,V1,K2,V2>> cls) {
      if (MultithreadedMapper.class.isAssignableFrom(cls)) {
        throw new IllegalArgumentException("Can't have recursive " + 
                                           "MultithreadedMapper instances.");
      }
      job.getConfiguration().setClass("mapred.map.multithreadedrunner.class",
                                      cls, Mapper.class);
    }
docs: Set the application's mapper class.
  @param <K1> the map input key type
  @param <V1> the map input value type
  @param <K2> the map output key type
  @param <V2> the map output value type
  @param job the job to modify
  @param cls the class to use as the mapper