La mapping di hadoop riduce i lavori

Ho cinque mappe ridotte che sto eseguendo ciascuna separatamente. Voglio condurli tutti insieme. Quindi, l’output di un lavoro passa al prossimo lavoro. Attualmente, ho scritto script di shell per eseguirli tutti. C’è un modo per scrivere questo in Java? Si prega di fornire un esempio.

Grazie

È ansible trovare JobControl come il metodo più semplice per concatenare questi lavori insieme. Per flussi di lavoro più complessi, ti consiglio di controllare Oozie .

Ciao ho avuto requisiti simili Un modo per farlo è

dopo aver inviato il primo lavoro, eseguire quanto segue

Job job1 = new Job( getConf() ); job.waitForCompletion( true ); 

e quindi controllare lo stato usando

 if(job.isSuccessful()){ //start another job with different Mapper. //change config Job job2 = new Job( getConf() ); } 

Oozie è la soluzione per te. È ansible inviare tipi di lavori di riduzione della mappa, lavori di hive, processi di maiale, comandi di sistema ecc. Tramite i tag di azione di Oozie.

Ha persino un coordinatore che funge da cron per il tuo stream di lavoro.

Un’altra possibilità è Cascading , che fornisce anche un livello di astrazione su Hadoop: sembra fornire una simile combinazione di concetti di lavoro-strettamente-con-Hadoop, ma lasciando sollevare-ha-do-the-M / R-heavy che si ottiene usando i flussi di lavoro di Oozie che chiamano gli script di Pig.

Per il tuo caso d’uso, penso che Oozie sarà buono. Oozie è uno schedulatore di stream di lavoro in cui è ansible scrivere diverse azioni (può essere map-reduce, java, shell, ecc.) Per eseguire calcoli, trasformazioni, arricchimenti, ecc. In questo caso:

azione A: input i / p o / pa

azione B: i / pao / pb

azione C: i / pbo / pc (output finale)

Puoi finalmente persistere c in HDFS e decidere se persistere o eliminare le uscite intermedie.

Se si desidera eseguire il calcolo eseguito da tutte e tre le azioni in una singola, è ansible utilizzare Cascading. Puoi capire meglio su Cascading tramite la loro documentazione ufficiale, e puoi anche riferire il mio blog sullo stesso: https://tech.flipkart.com/expressing-etl-workflows-via-cascading-192eb5e7d85d