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.
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.
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.
Umm la página que señalé habla sobre MRUnut :) Pero claro. – SquareCog
@SquareCog - Es malo, solo asumí que sabía a qué página te habías vinculado. Es una buena fuente de información: +) –
Las líneas impresas con System.out.println y System.err.println van a los registros que Hadoop escribe por trabajo. Puede verlos usando la interfaz de usuario web haciendo clic en las tareas individuales.
Ver esta entrada del blog de Cloudera para una gran cantidad de consejos sobre las pruebas y la depuración de los trabajos de Hadoop: http://www.cloudera.com/blog/2009/07/advice-on-qa-testing-your-mapreduce-jobs/
Me gustaría agregar, que puede usar Counters
Hadoop JavaDoc para la depuración también. P.ej. si desea verificar, con qué frecuencia se pasa determinada línea en su programa.
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.
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)
Consulte aquí https://stackoverflow.com/questions/23235343/debugging -hadoop-in-eclipse – Mash