2010-10-15 6 views
1

J'ai cinq carte réduire que je cours chaque séparément. Je veux les canaliser tous ensemble. Ainsi, la sortie d'un travail va à l'emploi suivant. Actuellement, j'ai écrit un script shell pour les exécuter tous. Existe-t-il un moyen d'écrire ceci en Java? S'il vous plaît fournir un exemple.Pipeling hadoop carte réduire emplois

Merci

Répondre

3

Vous pouvez trouver JobControl être la méthode la plus simple pour chaîner ces emplois ensemble. Pour les workflows plus complexes, je vous recommande de vérifier Oozie.

2

Salut j'avais besoin similaire Une façon de le faire est

après avoir soumis un premier emploi exécuter suivant

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

puis vérifier le statut en utilisant

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

oozie est la solution pour vous. Vous pouvez soumettre des types de travaux de réduction de mappe, des travaux de ruche, des travaux de raclage, des commandes système, etc. à l'aide des balises d'action d'Oozie.

Il a même un coordinateur qui agit comme un cron pour votre flux de travail.

0

Une autre possibilité est Cascading, qui fournit également une couche d'abstraction au-dessus de Hadoop: il semble fournir une combinaison similaire de concepts fonctionnant étroitement avec Hadoop tout en laissant-hadoop-faire-le-M/R-lourd soulever que l'on utilise des flux de travail Oozie appelant des scripts Pig.

Questions connexes