Oozie: lanciare Map-Reduce dall’azione Oozie ?

Sto cercando di eseguire un’attività di riduzione della mappa in un stream di lavoro Oozie utilizzando un’azione .

L’ Apache Oozie di O’Reilley (Islam e Srinivasan 2015) osserva che:

Anche se non è raccomandato, l’azione Java può essere utilizzata per eseguire i lavori Hadoop MapReduce perché i lavori MapReduce non sono altro che programmi Java dopo tutto. La class principale invocata può essere un driver Hadoop MapReduce e può chiamare le API Hadoop per eseguire un lavoro MapReduce. In tale modalità, Hadoop genera più mapper e riduttori secondo necessità e li esegue sul cluster.

Tuttavia, non sto avendo successo usando questo approccio.

La definizione dell’azione nel stream di lavoro è simile a questa:

        mapreduce.job.queuename default   package.containing.TransformTool ${transformIn} ${transformOut} ${avroJar} ${avroMapReduceJar}  

L’implementazione main() dell’implementazione dello strumento si presenta così:

 public static void main(String[] args) throws Exception { int res = ToolRunner.run(new TransformTool(), args); if (res != 0) { throw new Exception("Error running MapReduce."); } } 

Il stream di lavoro si arresta in modo anomalo con l’eccezione “Errore durante l’esecuzione di MapReduce” sopra ogni volta; come ottengo l’output di MapReduce per diagnosticare il problema? C’è un problema con l’utilizzo di questo Tool per eseguire un’applicazione MapReduce? Sto usando le chiamate API sbagliate?

Sono estremamente poco incline a utilizzare l’azione Oozie , poiché ogni azione nel stream di lavoro si basa su diversi schemi AVRO con versione separata.

Qual è il problema qui? Sto usando la “nuova” API di mapreduce per l’attività.

Grazie per qualsiasi aiuto.