Hadoop Multiple Input e Output

A seguir está um exemplo de uso de várias entradas (org.apache.hadoop.mapreduce.lib.input.MultipleInputs) com diferentes formatos de entrada e diferentes implementações de mapeador.

  • MultipleInputs.addInputPath (trabalho, accessLogPath, TextInputFormat.class, AccessLogMapper.class);
  • MultipleInputs.addInputPath (job, userDataPath, TextInputFormat.class, UserDataMapper.class);

Nota: static void addInputPath (Job job, Path path, Class <? Extends InputFormat> inputFormatClass, Class <? Extends Mapper> mapperClass): Adicione um Path com um InputFormat e Mapper personalizados à lista de entradas para o map-reduce job.

Da mesma forma, há MultipleOutputs para gravar vários destinos

* MultipleOutputs.addNamedOutput (trabalho, “texto”, TextOutputFormat.class, LongWritable.class, Text.class); // Define a saída adicional baseada em texto único ‘texto’ para o trabalho
* MultipleOutputs.addNamedOutput (job, “seq”, SequenceFileOutputFormat.class, LongWritable.class, Text.class); // Define a ‘sequência’ de saída baseada em arquivo de sequência adicional para o trabalho

Nota: static void addNamedOutput (Job job, String namedOutput, Class <? Extends OutputFormat> outputFormatClass, Class <?> KeyClass, Class <?> ValueClass): Adiciona uma saída nomeada para o job.