복붙노트

[HADOOP] 하이브가 수동으로 감속기 수를 설정할 수 없음

HADOOP

하이브가 수동으로 감속기 수를 설정할 수 없음

다음 하이브 쿼리가 있습니다.

select count(distinct id) as total from mytable;

자동으로 생성됩니다. 1408 매퍼 1 감속기

나는 감속기의 수를 수동으로 설정해야하며 다음을 시도했습니다.

set mapred.reduce.tasks=50 
set hive.exec.reducers.max=50

하지만이 설정 중 어느 것도 존경받는 것 같지 않습니다. 쿼리는 영원히 실행됩니다. 수동으로 감속기를 설정하거나 더 많은 감속기가 발생할 수 있도록 쿼리를 다시 작성하는 방법이 있습니까? 감사!

해결법

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

    1.다음과 같이 하이브에 쿼리를 작성합니다.

    다음과 같이 하이브에 쿼리를 작성합니다.

     SELECT COUNT(DISTINCT id) ....
    

    하나의 감속기 만 사용하게됩니다. 너는해야한다 :

    결과적으로 2 개의 map + reduce 작업이 발생하지만 성능이 크게 향상됩니다.

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

    2.감속기의 수는 입력 파일의 크기에 따라 다릅니다.

    감속기의 수는 입력 파일의 크기에 따라 다릅니다.

    기본적으로 1GB (1000000000 바이트)입니다. hive.exec.reducers.bytes.per.reducer 속성을 설정하여 변경할 수 있습니다.

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

    3.conf / mapred-site.xml 설정 파일에서 노드 당 스폰 된 감속기의 수를 설정할 수 있습니다. 여기를 참고하십시오 : http://hadoop.apache.org/common/docs/r0.20.0/cluster_setup.html.

    conf / mapred-site.xml 설정 파일에서 노드 당 스폰 된 감속기의 수를 설정할 수 있습니다. 여기를 참고하십시오 : http://hadoop.apache.org/common/docs/r0.20.0/cluster_setup.html.

    특히이 속성을 설정해야합니다.

    mapred.tasktracker.reduce.tasks.maximum
    
  4. ==============================

    4.매퍼는 총 파일 수, 즉 입력 분할로 부를 수있는 파일 크기에 따라 달라집니다. 분할은 논리적이지만 데이터의 논리적 분할입니다. 예 : 내 파일 크기는 150MB이고 HDFS 기본 블록은 128MB입니다. 그것은 두 개의 분리 된 수단을 두 개의 블록으로 만듭니다. 두 명의 매퍼가이 작업에 할당됩니다.

    매퍼는 총 파일 수, 즉 입력 분할로 부를 수있는 파일 크기에 따라 달라집니다. 분할은 논리적이지만 데이터의 논리적 분할입니다. 예 : 내 파일 크기는 150MB이고 HDFS 기본 블록은 128MB입니다. 그것은 두 개의 분리 된 수단을 두 개의 블록으로 만듭니다. 두 명의 매퍼가이 작업에 할당됩니다.

    Imp 참고 : 분할 크기를 50MB로 지정했다고 가정하면 분할 수에 완전히 의존하기 때문에 3 매퍼가 시작됩니다.

    Imp 참고 : 입력 데이터가 10TB이고 블록 크기가 128MB 인 경우 Configuration.set (MRJobConfig.NUM_MAPS, int) (프레임 워크에 대한 힌트 만 제공)을 사용하지 않는 한 82,000 개의 맵이 생성됩니다. 더 높게 설정하십시오.

    참고 : 분할 크기를 지정하지 않으면 기본 hdfs 블록 크기가 분할 크기로 사용됩니다.

    감속기에는 3 가지 주요 단계가 있습니다. 셔플, 정렬 및 감축입니다.

    명령 :

    1]지도 작업 설정 : -D mapred.map.tasks = 4 2] 작업 축소 설정 : -D mapred.reduce.tasks = 2

  5. from https://stackoverflow.com/questions/8762064/hive-unable-to-manually-set-number-of-reducers by cc-by-sa and MIT license