exemple - mapreduce example java



Yarn MapReduce Job Issue-Erreur de lancement du conteneur AM dans Hadoop 2.3.0 (8)

J'ai corrigé le problème, c'était dû à des chemins incorrects. En donnant le chemin complet du répertoire à mapred, hdfs, yarn et common résout le problème.

Merci, Tony

https://src-bin.com

J'ai configuré un cluster de 2 nœuds de Hadoop 2.3.0. Cela fonctionne très bien et je peux exécuter avec succès l'exemple distributedshell-2.2.0.jar. Mais quand j'essaye d'exécuter n'importe quel travail de mapreduce j'obtiens l'erreur. J'ai configuré MapRed.xml et d'autres configs pour exécuter le travail de MapReduce selon ( http://www.alexjf.net/blog/distributed-systems/hadoop-yarn-installation-definitive-guide ) mais j'obtiens l'erreur suivante:

14/03/22 20:31:17 INFO mapreduce.Job: Job job_1395502230567_0001 failed with state FAILED due to: Application application_1395502230567_0001 failed 2 times due to AM Container for appattempt_1395502230567_0001_000002 exited 
with  exitCode: 1 due to: Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException: 
    org.apache.hadoop.util.Shell$ExitCodeException: 
        at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
        at org.apache.hadoop.util.Shell.run(Shell.java:418)
        at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
        at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:283)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:79)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)


    Container exited with a non-zero exit code 1
    .Failing this attempt.. Failing the application.
    14/03/22 20:31:17 INFO mapreduce.Job: Counters: 0
    Job ended: Sat Mar 22 20:31:17 PKT 2014
    The job took 6 seconds.

Et si vous regardez stderr (journal du travail), il n'y a qu'une seule ligne "Could not find or load main class 614"

Maintenant, je l'ai googlé et généralement ce problème survient lorsque vous avez différentes versions de JAVA ou dans yarn-site.xml classpath n'est pas correctement défini, mon yarn-site.xml a ce

  <property>
    <name>yarn.application.classpath</name>
    <value>/opt/yarn/hadoop-2.3.0/etc/hadoop,/opt/yarn/hadoop-2.3.0/*,/opt/yarn/hadoop-2.3.0/lib/*,/opt/yarn/hadoop-2.3.0/*,/opt/yarn/hadoop-2.3.0/lib/*,/opt/yarn/hadoop-2.3.0/*,/opt/yarn/hadoop-2.3.0/lib/*,/opt/yarn/hadoop-2.3.0/*,/opt/yarn/hadoop-2.3.0/lib/*</value>
  </property>

Donc, d'autres idées, quel pourrait être le problème ici?

Je cours mon travail de mapreduce comme ceci:

$HADOOP_PREFIX/bin/hadoop jar $HADOOP_PREFIX/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter out

Answer #1

J'ai rencontré le même problème en essayant d'installer Hortonworks HDP 2.1 manuellement. J'ai réussi à capturer le script du lanceur de conteneur qui contenait ce qui suit:

#!/bin/bash

export NM_HTTP_PORT="8042"
export LOCAL_DIRS="/data/1/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001,/data/2/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001,/data/3/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001,/data/4/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001"
export JAVA_HOME="/usr/java/latest"
export NM_AUX_SERVICE_mapreduce_shuffle="AAA0+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
export CLASSPATH="$PWD:$HADOOP_CONF_DIR:$HADOOP_COMMON_HOME/share/hadoop/common/*:$HADOOP_COMMON_HOME/share/hadoop/common/lib/*:$HADOOP_HDFS_HOME/share/hadoop/hdfs/*:$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*:$HADOOP_YARN_HOME/share/hadoop/yarn/*:$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*:job.jar/job.jar:job.jar/classes/:job.jar/lib/*:$PWD/*"
export HADOOP_TOKEN_FILE_LOCATION="/data/2/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001/container_1406927878786_0001_01_000001/container_tokens"
export NM_HOST="test02.admin.hypertable.com"
export APPLICATION_WEB_PROXY_BASE="/proxy/application_1406927878786_0001"
export JVM_PID="$$"
export USER="doug"
export HADOOP_HDFS_HOME="/usr/lib/hadoop-hdfs"
export PWD="/data/2/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001/container_1406927878786_0001_01_000001"
export CONTAINER_ID="container_1406927878786_0001_01_000001"
export HOME="/home/"
export NM_PORT="62404"
export LOGNAME="doug"
export APP_SUBMIT_TIME_ENV="1406928095871"
export MAX_APP_ATTEMPTS="2"
export HADOOP_CONF_DIR="/etc/hadoop/conf"
export MALLOC_ARENA_MAX="4"
export LOG_DIRS="/data/1/hadoop/yarn/logs/application_1406927878786_0001/container_1406927878786_0001_01_000001,/data/2/hadoop/yarn/logs/application_1406927878786_0001/container_1406927878786_0001_01_000001,/data/3/hadoop/yarn/logs/application_1406927878786_0001/container_1406927878786_0001_01_000001,/data/4/hadoop/yarn/logs/application_1406927878786_0001/container_1406927878786_0001_01_000001"
ln -sf "/data/1/hadoop/yarn/local/usercache/doug/filecache/10/libthrift-0.9.2.jar" "libthrift-0.9.2.jar"
ln -sf "/data/4/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001/filecache/13/job.xml" "job.xml"
mkdir -p jobSubmitDir
ln -sf "/data/3/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001/filecache/12/job.split" "jobSubmitDir/job.split"
mkdir -p jobSubmitDir
ln -sf "/data/2/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001/filecache/11/job.splitmetainfo" "jobSubmitDir/job.splitmetainfo"
ln -sf "/data/1/hadoop/yarn/local/usercache/doug/appcache/application_1406927878786_0001/filecache/10/job.jar" "job.jar"
ln -sf "/data/2/hadoop/yarn/local/usercache/doug/filecache/11/hypertable-0.9.8.0-apache2.jar" "hypertable-0.9.8.0-apache2.jar"
exec /bin/bash -c "$JAVA_HOME/bin/java -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/data/4/hadoop/yarn/logs/application_1406927878786_0001/container_1406927878786_0001_01_000001 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA  -Xmx1024m org.apache.hadoop.mapreduce.v2.app.MRAppMaster 1>/data/4/hadoop/yarn/logs/application_1406927878786_0001/container_1406927878786_0001_01_000001/stdout 2>/data/4/hadoop/yarn/logs/application_1406927878786_0001/container_1406927878786_0001_01_000001/stderr "

La ligne qui définit CLASSPATH était le coupable. Pour résoudre le problème, j'ai dû définir les variables HADOOP_COMMON_HOME , HADOOP_HDFS_HOME , HADOOP_YARN_HOME et HADOOP_MAPRED_HOME dans hadoop-env.sh pour pointer vers les répertoires appropriés sous /usr/lib . Dans chacun de ces répertoires, j'ai également dû configurer la hiérarchie des sous-répertoires share/hadoop/... où les fichiers jar pouvaient être trouvés.


Answer #2

Peut-être que vous pouvez exécuter HistoryServer avec le code suivant sous $ HADOOP_HOME / bin,

./mr-jobhistory-daemon.sh start historyserver

Et puis vous pouvez contrôler les journaux de Hadoop Error à partir de cette URL, (Historique)

http://<Resource Manager Host name adress>:8088/cluster

Et très probablement vous obtenez une exception de classe non trouvée


Answer #3

J'ai également rencontré ce problème sur Ambari 2.0 + HDP2.3 + HUE3.9 mon expérience fixe est: 1. Assurez-vous que le client spark existe sur tous les nœuds hadoop fils 2. export SPARK_HOME sur tous les nœuds de fils (spark client), et hue host


Answer #4

Veuillez d'abord vérifier les logs (ils seront dans le répertoire utilisateur sous le répertoire logs de Hadoop).

Vérifiez également les autorisations de tous les répertoires que vous avez mentionnés dans les fichiers XML, hdfs, core-site. Parce que cette erreur est causée par des problèmes d'autorisation incorrects dans la plupart des cas.


Answer #5

Vous devrez retarder la suppression du journal en définissant yarn.nodemanager.delete.debug-delay-sec sur 600.

Cela vous permettra de parcourir les fichiers stderr, stdout et syslog dans /hadoop/yarn/log dans le répertoire du conteneur correspondant.

Très probablement, vous trouverez l'erreur dans syslog. Et, très probablement, ce sera une ClassNotFoundException pour la classe tez.history.logging.service.class = org.apache.tez.dag.history.logging.ats.ATSV15HistoryLoggingService.

Si tel est le cas, reportez-vous au ticket suivant:

https://issues.apache.org/jira/browse/AMBARI-15041


Answer #6

Dans mon cas, le problème était dû à une mémoire insuffisante. J'ai inséré le ci-dessous dans yarn-site-xml comme adino suggéré dans son commentaire ci-dessus:

<property> <name>yarn.nodemanager.delete.debug-delay-sec</name> <value>600</value> </property>

Après cela, j'ai pu voir une erreur dans le fichier journal stderr. Je ne me souviens pas du libellé exact (le fichier journal a été supprimé au bout d'un moment). C'était sur le modèle de "l'erreur de mémoire"

J'ai édité ma machine virtuelle pour ajouter une autre partition de swap de la taille 3 gigaoctets (probablement overkill total). Je l'ai fait avec Gparted.

Ensuite, j'ai dû enregistrer la nouvelle partition d'échange en tapant

mkswap /dev/sda6 (/dev/sda6 is the partition name)
swapon /dev/sda6 

J'ai trouvé l'uid de la nouvelle partition de swap en tapant "blkid" et en copiant l'uid.

J'ai enregistré le swap dans le fichier fstab:

sudo vi /etc/fstab

J'ai ajouté une nouvelle ligne pour la nouvelle partition de swap. J'ai copié toute la ligne de la partition de swap précédente et j'ai juste changé l'UID.

UUID=2d29cddd-e721-4a7b-95c0-7ce52734d8a3 none  swap    sw      0       0

Après cela, l'erreur a disparu. Je suis sûr qu'il y a des façons plus élégantes de résoudre cela, mais cela a fonctionné pour moi. Je suis assez nouveau pour faire face à Linux.


Answer #7

J'ai résolu cette question avec ce qui suit:

Parce que dans mon hadoop / etc / hadoop [catalogue de configuration hadoop-2.7.3]: A propos de mapred-site.xml:

<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
 <property>
   <name>mapreduce.jobhistory.address</name>
   <value>zhangjunj:10020</value>
 </property>
 <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>zhangjunj:19888</value>
 </property>
</configuration>

Dans ce fichier. Le 'zhangjunj' doit être le nom de la machine de votre maître, mais j'avais écrit 'hadoop' au début.