2012-06-12 15 views
7

Soy nuevo en Hadoop/PIG. Tengo una pregunta básica.Depurando en PIG UDF

¿Tenemos una instalación de registro en PIG UDF? He escrito una UDF que necesito verificar Necesito registrar ciertas declaraciones para verificar el flujo. ¿Hay alguna instalación de registro disponible? En caso afirmativo, ¿dónde están presentes los registros del cerdo?

Respuesta

6

Suponiendo que su UDF se extiende EvalFunc, puede utilizar el registrador devuelto desde EvalFunc.getLogger(). La salida del registro debe ser visible en la tarea asociada Map/Reduce que pig ejecuta (si el trabajo se ejecuta en más de una etapa, entonces tendrá que elegir entre las entradas de registro asociadas).

+0

¿Entonces los registros terminarán en el archivo de registro Map Reduce Task? ¿Podría hacer específicamente mis declaraciones de registro en un archivo separado? – Uno

+0

Sí lo harán. Podría, pero luego tendría que ir a cada rastreador de tareas para verlos/recopilarlos. Supongo que podría intentar configurar un registrador remoto (por ejemplo, iniciar sesión en una base de datos). –

+0

No lo sé con certeza, pero podrías probar el PigLogger, que podría enviar cosas al cliente. –

2

Quizás sea obvio, pero recomiendo depurar su UDF en modo local antes de implementar en un clúster/pseudocluster. De esta forma, puedes depurarlo directamente dentro de tu IDE (eclipse en mi caso), que es más fácil que la depuración de logs.

+0

¿Hay algún sitio o algunos pasos que pueda seguir para comenzar con Eclipse? Me refiero a cerdo en eclipse. – Uno

+1

no conoce un sitio con pasos, pero es bastante simple: ponga las dependencias de hadoop-core y pig en su maven pom, y luego trabaje con 'org.apache.pig.PigServer'. intente 'pigServer.registerScript (resource.getInputStream(), pigScriptParams, null); 'y luego' PigStats stats = pigServer.store ("final_output", pigScriptParams.get ("carpeta_de_ejecución"), pigStoreFunc) .getStatistics(); ' – ihadanny