복붙노트

[HADOOP] Hadoop 작업의 CPU 시간은 무엇을 의미합니까?

HADOOP

Hadoop 작업의 CPU 시간은 무엇을 의미합니까?

Map-Reduce 작업의 타이밍 결과를 이해하지 못하는 것 같습니다. 예를 들어, 내가 일하고있는 직업은 직업 추적자로부터 다음과 같은 결과를 얻습니다.

완료 시간 : 1 분, 39 초

CPU 사용 시간 (밀리 초) 150,460 152,030 302,490

소요 된 CPU 시간 (ms)의 항목은 각각 Map, Reduce 및 Total입니다. 그렇다면 "CPU 사용 시간"은 어떻게 측정되며, 그 의미는 무엇입니까? 작업에 할당 된 각 매퍼와 축소기에 소요 된 총 누적 시간입니까? 셔플, 정렬, 파티션 등의 시간과 같은 프레임 워크에서 다른 시간을 측정 할 수 있습니까? 그렇다면 어떻게?

나를 괴롭히는 두 번째 질문. 드라이버 클래스에서 getTime ()을 사용하여 제안하는 몇 가지 게시물 (Link1, Link2)을 보았습니다.

long start = new Date().getTime();
boolean status = job.waitForCompletion(true);
long end = new Date().getTime();
System.out.println("Job took "+(end-start) + "milliseconds");

Job Tracker 출력의 첫 번째 항목이 제공하는 것을 수행하지 않습니까? 필요한가? I / O 시간, 노드 당 / 스테이지 당 시간을 계산하고자 할 때, 특히 hadoop 작업의 시간을 정하는 가장 좋은 방법은 무엇입니까?

해결법

  1. ==============================

    1.지도 단계는 레코드 판독기,지도, 결합기 및 분할기로 구성됩니다.

    지도 단계는 레코드 판독기,지도, 결합기 및 분할기로 구성됩니다.

    축소 단계는 셔플, 정렬, 축소, 출력으로 구성됩니다.

    보고있는 CPU 시간은 전체 맵 단계와 전체 축소 단계입니다. 함수 자체가 아닙니다. 이는지도 기능과 축소 기능이 있기 때문에 혼란스러운 용어입니다. 이는지도 단계의 일부일 뿐이고 위상을 줄입니다. 이는 클러스터의 모든 노드에 걸친 총 CPU 시간입니다.

    CPU 시간은 실시간으로 크게 다릅니다. CPU 시간은 CPU에 소비 된 시간이며 실제 시간은 사용자와 내가 인간으로서 경험하는 시간입니다. 생각해보십시오. 동일한 데이터가 하나의 20 노드 클러스터에서 실행되고 동일한 노드에서 200 노드 클러스터로 실행되는 것으로 가정하십시오. 전체적으로 동일한 양의 CPU 시간이 두 클러스터에서 사용되지만 200 노드 클러스터는 실시간으로 10 배 더 빠르게 실행됩니다. CPU 시간은 동시에 많은 작업이 실행되는 공유 시스템을 사용할 때 유용한 측정 항목입니다.

    각 단계에서 CPU 시간을 확보하는 방법에 대해 자세히 알고 싶습니다. 날짜 타이머를 사용하는 것은 아마도 당신이 찾고있는 것이 아닙니다.

  2. from https://stackoverflow.com/questions/11726388/what-does-cpu-time-for-a-hadoop-job-signify by cc-by-sa and MIT license