2011-04-08 2 views
2

Comment ajouter des tâches à hadoop par programme et les exécuter dans mon application Java? Des idées? Merci.Hadoop, exécution de tâches

+0

Vous pouvez soumettre des tâches à Hadoop et les laisser parcourir votre application Java sur votre cluster. C'est ce que tu veux dire? –

+0

Oui c'est ce que je veux faire. Mais comment ? – Gravedigger

+0

k regarde ma réponse;) –

Répondre

4

En java cela est assez facile:

Configuration conf = new Configuration(); 
Job job = new Job(conf); 
job.setJarByClass(YOUR_MAPPER.class); 
job.setMapperClass(YOUR_MAPPER.class); 
job.setReducerClass(YOUR_REDUCER.class); 
job.setOutputKeyClass(YOUR_OUTPUT_KEY.class); 
job.setOutputValueClass(YOUR_OUTPUT_VALUE.class); 
FileInputFormat.addInputPath(job, new Path("YOUR_INPUT_PATH")); 
FileOutputFormat.setOutputPath(job, new Path("YOUR_OUTPUT_PATH")); 
System.exit(job.waitForCompletion(true) ? 0 : 1); 

Si vous avez besoin de le soumettre à un cluster, vous devez ajouter ces valeurs à l'objet de configuration:

conf.set("fs.default.name", "hdfs://localhost:9000"); 
conf.set("mapred.job.tracker", "localhost:9001"); 

Vous devez remplacer les ports et hostname aux valeurs configurées dans le répertoire du cluster conf.

+0

Mais, afin d'exécuter le travail sur l'exécution sur hadoop, je dois entrer "bin/hadoop jar hadoop.jar main.UrlFetch entrée sortie" à chaque fois. Je veux exécuter un travail (par exemple, l'analyse de nombreux sites Web) à partir de mon application Web, parfois contrôler l'achèvement et transmettre les résultats à mon application Web. – Gravedigger

+0

en fait, cet extrait peut être utilisé dans n'importe quelle application. –

Questions connexes