2010-05-14 10 views
7

Intenté imprimir valores usando System.out.println(), pero no aparecerán en la consola. ¿Cómo imprimo los valores en una aplicación de mapa/reducción para fines de depuración usando Hadoop?Depuración de aplicaciones hadoop

Gracias, Deepak.

+1

Consulte aquí https://stackoverflow.com/questions/23235343/debugging -hadoop-in-eclipse – Mash

Respuesta

5

Los puntos página @SquareCog a es una muy buena fuente de información sobre la depuración de un trabajo MapReduce una vez que se está ejecutando en una nube

Antes de llegar a ese punto, debe considerar la posibilidad de escribir pruebas unitarias para sus correlacionadores y reductores, para que pueda verificar que la lógica básica funciona. Si está interesado en pruebas unitarias para probar su mapa y reducir la verificación lógica, mrunit, que funciona de manera similar a JUnit.

+1

Umm la página que señalé habla sobre MRUnut :) Pero claro. – SquareCog

+0

@SquareCog - Es malo, solo asumí que sabía a qué página te habías vinculado. Es una buena fuente de información: +) –

3

Me gustaría agregar, que puede usar CountersHadoop JavaDoc para la depuración también. P.ej. si desea verificar, con qué frecuencia se pasa determinada línea en su programa.

0

System.out.println no se dirige al terminal sino que se escribe en los archivos de registro. Los archivos de registro están ubicados en su directorio Hadoop de forma predeterminada. Por lo tanto, puede escribir en la terminal cat /hadoop-homedirectory/logs/userlogs/jobID/attemptID/stdout También puede acceder a través de la interfaz web. Escriba ip: 50070/logs/userlogs.

0

Si utiliza MRUnit & ApprovalTests es muy fácil imprimir el proceso de un trabajo de reducción de mapa. Hay un video en él aquí: http://t.co/leExFVrf

Por ejemplo el código

HadoopApprovals.verifyMapReduce(new WordCountMapper(), 
          new WordCountReducer(), 0, "cat cat dog"); 

producirá la salida:

[cat cat dog] 
-> maps via WordCountMapper to -> 
(cat, 1) 
(cat, 1) 
(dog, 1) 

-> reduces via WordCountReducer to -> 
(cat, 2) 
(dog, 1)