Obawiam się, że nie rozumiem wyników pomiaru czasu pracy polegającej na zmniejszeniu liczby map. Na przykład praca, którą wykonuję, daje mi następujące wyniki z modułu śledzenia zadań.Co oznacza czas procesora dla zadania Hadoop?
Zakończone w: 1mins, 39sec czasu
CPU spędzone (MS) 150,460 152030 302490
wpisy w czasie CPU spędzone (MS) są za mapą, Reduce i Total odpowiednio. Ale w jaki sposób mierzony jest "czas pracy procesora" i co to oznacza? Czy jest to łączny łączny czas spędzony w każdym z mapperów i reduktorów przypisanych do pracy? Czy jest możliwe zmierzenie innych czasów z frameworka, takich jak czas na losowanie, sortowanie, podział itp.? Jeśli tak to jak?
Drugie pytanie, które mi przeszkadza. Widziałem kilka postów tutaj (Link1, Link2), który zalecamy użycie getTime() w klasie kierowcy:
long start = new Date().getTime();
boolean status = job.waitForCompletion(true);
long end = new Date().getTime();
System.out.println("Job took "+(end-start) + "milliseconds");
Czy to nie robi tego, co pierwszy wpis na wyjściu Job Tracker zapewnia tak? Czy to konieczne? Jaki jest najlepszy sposób, aby odmierzać czas pracy w trybie hadoop, szczególnie gdy chcę uzyskać czas IO, czas obliczeń na węzeł/na etap?
powinieneś umieścić różne pytania w różnych postach –