Me temo que no entiendo los resultados de tiempo de un trabajo Map-Reduce. Por ejemplo, un trabajo que estoy ejecutando me da los siguientes resultados del rastreador de trabajos.¿Qué significa el tiempo de CPU para un trabajo de Hadoop?
terminado en: 1mins, 39sec tiempo
CPU empleado (ms) 150,460 152,030 302,490
Las entradas de tiempo de CPU gastado (ms) son de Mapa, reducir y total, respectivamente. Pero, ¿cómo se mide el "tiempo de la CPU" y qué significa? ¿Es este el tiempo acumulado total en cada uno de los mapeadores y reductores asignados para el trabajo? ¿Es posible medir otras veces desde el marco como el tiempo para mezclar, ordenar, particionar, etc.? ¿Si es así, cómo?
Una segunda pregunta que me molesta. He visto algunas críticas aquí (Link1, Link2), que sugieren el uso de getTime() de la clase del controlador:
long start = new Date().getTime();
boolean status = job.waitForCompletion(true);
long end = new Date().getTime();
System.out.println("Job took "+(end-start) + "milliseconds");
No es esto lo que hace la primera entrada en la salida Job Tracker ofrece todos modos? ¿Es esto necesario? ¿Cuál es la mejor manera de calcular el tiempo de un trabajo de hadoop, especialmente cuando quiero medir el tiempo de IO, calcular el tiempo por nodo/por etapa?
debe poner diferentes preguntas en diferentes mensajes –