복붙노트

[HADOOP] 왜 Mapreduce에 일자리를 제출하는 것이 장군에게 많은 시간을 필요로합니까?

HADOOP

왜 Mapreduce에 일자리를 제출하는 것이 장군에게 많은 시간을 필요로합니까?

그래서 일반적으로 20 노드 클러스터는 3GB (200 스플릿)의 데이터를 처리하기 위해 작업을 제출하는 데 약 30 초가 소요되며 실제 실행은 약 1m입니다. 나는 직업을 제출하는 과정에서 병목 현상이 무엇인지 이해하고 다음 인용문을 이해하고 싶다.

내가 알고있는 몇 가지 과정 : 1. 데이터 분할 2. jar 파일 공유

해결법

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

    1.이 대기 시간을 이해하는 데 도움이되는 HDFS 및 M / R에 대해 알아야 할 몇 가지 사항은 다음과 같습니다.

    이 대기 시간을 이해하는 데 도움이되는 HDFS 및 M / R에 대해 알아야 할 몇 가지 사항은 다음과 같습니다.

    1000 행의 내용으로 파일을 처리하려면 정상적인 파일 읽기 W 프로세스 프로그램을 사용하는 것이 좋습니다. 분산 시스템에서 프로세스를 생성하는 Hadoop 인프라는 아무런 이점도 얻지 못하지만 관련 데이터 청크를 포함하는 데이터 노드를 찾고 처리 프로그램을 시작하고 결과를 추적 및 수집하는 추가 오버 헤드에 기여하게됩니다.

    이제 100 개의 Peta Bytes 데이터로 확장하십시오. 이러한 오버 헤드는 처리하는 데 걸릴 시간과 비교해 볼 때 매우 중요하지 않습니다. 프로세서 (매퍼 (mappers) 및 리듀서 (reducer))를 병렬 처리하면 이점이 여기에 표시됩니다.

    따라서 M / R의 성능을 분석하기 전에 우선 클러스터를 벤치마킹하여 오버 헤드를 더 잘 이해할 수 있도록해야합니다.

    클러스터에서 no-operation 맵 축소 프로그램을 수행하는 데 시간이 얼마나 걸립니까?

    이 목적으로 MRBench를 사용하십시오.

    이 프로그램을 실행하려면 다음을 시도하십시오 (최신 버전의 올바른 방법을 확인하십시오.

    hadoop jar /usr/lib/hadoop-0.20/hadoop-test.jar mrbench -numRuns 50
    

    놀랍게도 우리 개발자 클러스터 중 하나에서 22 초가 걸렸습니다.

    또 다른 문제는 파일 크기입니다.

    파일 크기가 HDFS 블록 크기보다 작 으면 Map / Reduce 프로그램에 상당한 오버 헤드가 발생합니다. Hadoop은 일반적으로 블록 당 매퍼를 생성하려고 시도합니다. 즉, 5KB의 파일이 30 개이면 Hadoop은 파일 크기가 작더라도 결국 블록 당 30 개의 매퍼를 생성 할 수 있습니다. 이것은 각 프로그램의 오버 헤드가 작은 파일을 처리하는 데 소요되는 시간과 비교할 때 현저한만큼 실제 낭비입니다.

  2. ==============================

    2.내가 아는 한 작업 병목 현상을 유발하는 병목 현상은 없습니다. 있다면, 오래 전에 해결되었을 것입니다.

    내가 아는 한 작업 병목 현상을 유발하는 병목 현상은 없습니다. 있다면, 오래 전에 해결되었을 것입니다.

    시간이 걸리는 많은 단계가 있으며 프로세스가 느린 이유가 있습니다. 나는 그들을 나열하고 내가 할 수있는 곳을 추정하려고 노력할 것이다.

  3. ==============================

    3.유사한 문제가 발생했으며 다음 단계에 따라 해결책을 설명 할 수 있습니다.

    유사한 문제가 발생했으며 다음 단계에 따라 해결책을 설명 할 수 있습니다.

  4. from https://stackoverflow.com/questions/11369235/why-submitting-job-to-mapreduce-takes-so-much-time-in-general by cc-by-sa and MIT license