Foro Formación Hadoop
Error ResourceManager - "Ejercicio Ejecutando un job MapReduce"
Buenos días a tod@s,A continuación os indicamos una duda que le ha surgido a uno de nuestros alumnos por si os sirve de ayuda a afrontar los errores que os van saliendo:Por otro lado os detallo el error que estoy teniendo con el ejercicio "Ejecutando un job MapReduce" del primer módulo, os cuento como he generado el archivo .jar por si no lo he hecho bien:He conseguido generar el .jar a través del eclipse, para ello importé el workspace de los ejercicios y los metí todos en paquetes de un proyecto java. Cada uno de los paquetes los renombre a "com.formacionhaddoop.<carpetaDelEjercicio>" (el nombre que venía en el import de cada clase) y dentro del paquete sus clases. De otra manera no podía generar el archivo .jar. Por otro lado, para depurar algunos errores que salían en las clases me descargué las libreras jar de Hadoop y las importé al eclipse.Pero aun así me seguía dando un error dentro de la clase WordCountDriver.java, a la hora de declarar el Job, la lína es exactamente:Job job = Job.getInstance(new Configuration(), "Word Count");El error era que no existía el método y buscando por internet encontré que había mas gente que les pasaba, no se si es por la librería Hadoop que me bajé pero leí que poniendo lo siguiente se arreglaba y efectivamente funcionó (al menos la compilación):Job job = Job.getInstance(new Configuration(), "Word Count");Os adjunto un pantallazo del proyecto generado en eclipse de wordCount y en donde se ve el cambio realizado.Una vez hecho esto y generado el .jar, ejecuto el job y el error que me sale el siguiente mensaje y se queda ahí esperando al servidor infinitamente:[cloudera@quickstart wordcount]$ hadoop jar wordcount-1.jar com.formacionhadoop.wordcount.WordCountDriver /formacionhadoop/desarrollador/cervantes /formacionhadoop/desarrollador/wordcounts16/07/03 02:48:54 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:803216/07/03 02:49:00 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:01 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:02 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:03 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 3 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:04 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 4 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:05 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 5 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:06 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 6 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:07 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 7 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:08 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 8 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)16/07/03 02:49:09 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)Miré por internet y vi que para solucionarlo lo mejor era hacer un restart:sudo service hadoop-yarn-resourcemanager restartLo ejecuté y volví a ejecutar el job y funcionó, se ejecutó el job pero saliendo el siguiente error, de aquí no he sabido pasar, no genera ningún archivo en la carpeta del HDFS wordcounts:[cloudera@quickstart wordcount]$ hadoop jar wordcount-1.jar com.formacionhadoop.wordcount.WordCountDriver /formacionhadoop/desarrollador/cervantes /formacionhadoop/desarrollador/wordcounts16/07/03 02:53:51 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:803216/07/03 02:53:55 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.16/07/03 02:54:00 INFO input.FileInputFormat: Total input paths to process : 216/07/03 02:54:01 INFO mapreduce.JobSubmitter: number of splits:216/07/03 02:54:03 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1467539555386_000116/07/03 02:54:07 INFO impl.YarnClientImpl: Submitted application application_1467539555386_000116/07/03 02:54:08 INFO mapreduce.Job: The url to track the job: http://quickstart.cloudera:8088/proxy/application_1467539555386_0001/16/07/03 02:54:08 INFO mapreduce.Job: Running job: job_1467539555386_000116/07/03 02:54:29 INFO mapreduce.Job: Job job_1467539555386_0001 running in uber mode : false16/07/03 02:54:29 INFO mapreduce.Job: map 0% reduce 0%16/07/03 02:54:29 INFO mapreduce.Job: Job job_1467539555386_0001 failed with state FAILED due to: Application application_1467539555386_0001 failed 2 times due to AM Container for appattempt_1467539555386_0001_000002 exited with exitCode: 1For more detailed output, check application tracking page:http://quickstart.cloudera:8088/proxy/application_1467539555386_0001/Then, click on links to logs of each attempt.Diagnostics: Exception from container-launch.Container id: container_1467539555386_0001_02_000001Exit code: 1Stack trace: ExitCodeException exitCode=1:at org.apache.hadoop.util.Shell.runCommand(Shell.java:543)at org.apache.hadoop.util.Shell.run(Shell.java:460)at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:720)at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:210)at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)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:745)Container exited with a non-zero exit code 1Failing this attempt. Failing the application.16/07/03 02:54:29 INFO mapreduce.Job: Counters: 0[cloudera@quickstart wordcount]$Os adjunto un pantallazo del error generado en la traza:Muchas gracias,Un saludo,
El error del ResourceManager era claro, lo tenías caído.
Compruebe que tiene los servicios de YARN levantados:
sudo service hadoop-yarn-resourcemanager status
sudo service hadoop-yarn-nodemanager status Compruebe que tiene los servicios de HDFS levantados:sudo service hadoop-hdfs-namenode statussudo service hadoop-hdfs-datanode status.
Coméntenos el estado de los servicios y seguimos ayudándole en esa línea.
Si esto es correcto, otra posible causa son las librerías de Hadoop
En el vídeo tutorial "Configuración Máquina Virtual" se muestra cómo poder comprobar el estado de los servicios desde la línea de comandos y desde el Cloudera Manager.
A continuación os indico el enlace del vídeo:
Un saludo,
Redes sociales