3 votes

Erreur de manipulation : L'interface org.apache.hadoop.mapreduce.TaskAttemptContext a été trouvée, mais la classe était attendue.

J'utilise CDH4 et j'ai écrit une application MapReduce en utilisant la nouvelle API mapreduce. Je l'ai compilé avec hadoop-core-1.0.3.jar et lorsque je l'exécute sur mon cluster Hadoop, j'obtiens l'erreur suivante :

Erreur : L'interface org.apache.hadoop.mapreduce.TaskAttemptContext a été trouvée, mais la classe était attendue.

J'ai fait référence à cette question de StackOverflow qui semble parler du même problème. La réponse suggère de compiler notre code avec le fichier Hadoop-core-2.X.jar, mais je ne trouve rien de tel.

Alors comment puis-je le compiler pour qu'il fonctionne parfaitement dans CDH4.

8voto

ArunAllamsetty Points 1273

La réponse dans le lien que j'ai posté dans la question ci-dessus demandait de compiler avec la bibliothèque Hadoop 2.0. Par ailleurs, dans le post Hadoop 1.0, au lieu d'utiliser un seul jar Hadoop Core pour la compilation, deux (ou peut-être plus) jars différents doivent être utilisés.

J'ai utilisé : hadoop-common-2.0.2-alpha.jar hadoop-mapreduce-client-core-2.0.2-alpha.jar

pour compiler mon code et après cela, il a fonctionné correctement sans donner l'erreur susmentionnée.

0voto

Jeff Miller Points 558

Pour ma part, j'ai découvert que j'utilisais la mauvaise version d'Hadoop avec Avro 1.7.4 ( http://www.cloudera.com/content/cloudera/en/documentation/cdh4/v4-2-0/CDH4-Release-Notes/cdh4ki_topic_2_9.html )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X