code: private static void addNamedOutput(JobConf conf, String namedOutput,
                                 boolean multi,
                                 Class<? extends OutputFormat> outputFormatClass,
                                 Class<?> keyClass, Class<?> valueClass) {
      checkNamedOutputName(namedOutput);
      checkNamedOutput(conf, namedOutput, true);
      conf.set(NAMED_OUTPUTS, conf.get(NAMED_OUTPUTS, "") + " " + namedOutput);
      conf.setClass(MO_PREFIX + namedOutput + FORMAT, outputFormatClass,
        OutputFormat.class);
      conf.setClass(MO_PREFIX + namedOutput + KEY, keyClass, Object.class);
      conf.setClass(MO_PREFIX + namedOutput + VALUE, valueClass, Object.class);
      conf.setBoolean(MO_PREFIX + namedOutput + MULTI, multi);
    }
docs: Adds a named output for the job.
  <p/>
  
  @param conf              job conf to add the named output
  @param namedOutput       named output name, it has to be a word, letters
  and numbers only, cannot be the word 'part' as
  that is reserved for the
  default output.
  @param multi             indicates if the named output is multi
  @param outputFormatClass OutputFormat class.
  @param keyClass          key class
  @param valueClass        value class