Hadoop n'est pas montrer mon travail dans le tracker d'emploi, même si elle est en cours d'exécution
Problème: Quand je soumettre un travail à mon hadoop 2.2.0 cluster, il n'apparait pas dans le tracker d'emploi mais le travail se termine avec succès. Par cela, je peux voir la sortie et qu'il fonctionne correctement et imprime la sortie qu'il est en cours d'exécution.
J'ai essayé de multiples options, mais le tracker d'emploi n'est pas de voir le travail. Si je lance un flux de travail à l'aide de la 2.2.0 hadoop il montre que dans le groupe de tracker mais quand je soumettre via hadoop-client api, il n'apparaît pas dans le tracker d'emploi. Je suis à la recherche à l'interface utilisateur de l'interface sur le port 8088 pour vérifier le travail
Environnement
OSX Mavericks, la version 1.6 de Java, Hadoop 2.2.0 seul nœud de cluster, Tomcat 7.0.47
Code
try {
configuration.set("fs.defaultFS", "hdfs://127.0.0.1:9000");
configuration.set("mapred.jobtracker.address", "localhost:9001");
Job job = createJob(configuration);
job.waitForCompletion(true);
} catch (Exception e) {
logger.log(Level.SEVERE, "Unable to execute job", e);
}
return null;
etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-${user.name}</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
Vous devez vous connecter pour publier un commentaire.
La résolution de la question était de configurer le travail avec les extra-options de configuration pour les fils. J'ai fait int hypothèse erronée que le java hadoop-api client pourrait utiliser les options de configuration à partir du répertoire de configuration. J'ai été en mesure de diagnostiquer le problème en activant l'enregistrement détaillé à l'aide de log4j.propriétés pour mes tests unitaires. Il a montré que les travaux étaient en cours d'exécution locale et de ne pas être soumis au fil du gestionnaire de ressources. Avec un peu d'essais et d'erreurs, j'ai pu configurer le travail et l'ont soumis au fil du gestionnaire de ressources.
Code
mapreduce.job.tracker
est un véritable Hadoop propriété.mapreduce.jobtracker.address
dans le 2.xmapreduce.job.tracker
il ne semble pas exister du tout. Essayez de le mettre dans google (entre guillemets).uce
lors de la lecture de votre commentaireJe vois que vous êtes en utilisant Hadoop 2.2.0. Êtes-vous à l'aide de MRv1 ou MRv2? Les démons sont différents pour MRv2 (FILS). Il n'y a pas de JobTracker pour MRv2, si vous voyez un espace réservé page pour le JobTracker de l'INTERFACE utilisateur.
La classe ResourceManager de l'INTERFACE web doit afficher votre soumis emplois. La valeur par défaut URL web pour la classe ResourceManager est http://<ResourcemanagerHost>:8088
Remplacer ResourceManagerHost avec l'adresse IP du nœud où le Gestionnaire de Ressources est en cours d'exécution.
Vous pouvez en lire plus sur le FIL de l'architecture à Apache Hadoop YARN