2013-10-21 10 views
6

Ho creato un flusso di lavoro Oozie semplice con azioni Sqoop, Hive e Pig. Per ciascuna di queste azioni, Oozie lancia un MR Launcher e che a sua volta avvia l'azione (Sqoop/Hive/Pig). Quindi, ci sono un totale di 6 lavori MR per 3 azioni nel flusso di lavoro.Qual è il significato di Oozie MR launcher?

Perché Oozie avvia un MR Launcher per avviare l'azione e non avviare direttamente l'azione?

risposta

4

Ho postato lo stesso nei forum Apache Flume ed ecco la risposta.

E 'anche per mantenere il server Oozie dall'essere impantanarsi o di diventare instabile. Ad esempio, se hai un gruppo di flussi di lavoro che eseguono lavori Pig, , il server Oozie dovrebbe eseguire più copie del client Pig (che è un programma relativamente "pesante") direttamente. Spostando tutto il codice utente e i client esterni per mappare le attività nel lavoro di avvio, il server Oozie rimane più leggero e meno soggetto a errori. Può anche essere molto più scalabile in questo modo perché i lavori di avvio distribuiscono l'avvio/monitoraggio del lavoro ad altre macchine nel cluster; altrimenti con il server Oozie sta facendo tutto, dovremmo limitare il numero di flussi di lavoro simultanei basati sulle specifiche della macchina del server Oozie (RAM, CPU, ecc.). Infine, dal punto di vista architettonico, il server Oozie è stateless; cioè, tutto è memorizzato nel database e il server Oozie può essere rimosso in qualsiasi momento senza perdere nulla. Se avessimo di avviare i lavori direttamente dal server Oozie, avremmo ora uno stato (ad esempio, il client Pig non può essere riavviato e ripreso).