[HADOOP] Hive는 직업에 대한 감속기의 수를 어떻게 선택합니까?
HADOOPHive는 직업에 대한 감속기의 수를 어떻게 선택합니까?
여러 곳에서 Hadoop 작업의 기본 감속기 수가 1이라고합니다. mapred.reduce.tasks 기호를 사용하여 수동으로 감속기 수를 설정할 수 있습니다.
Hive 작업 (Amazon EMR, AMI 2.3.3)을 실행하면 하나보다 많은 수의 감속기가 있습니다. 작업 설정을 살펴보면 무언가가 mapred.reduce.tasks를 설정 했으므로 하이브를 추정합니다. 그 번호를 어떻게 선택합니까?
참고 : 단서가되어야하는 하이브 작업을 실행하는 동안 다음 메시지가 있습니다.
...
Number of reduce tasks not specified. Estimated from input data size: 500
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapred.reduce.tasks=<number>
...
해결법
-
==============================
1.바닐라 Hadoop 설치의 경우 기본값은 1 일 수 있습니다. 하이브가 그것을 무시합니다.
바닐라 Hadoop 설치의 경우 기본값은 1 일 수 있습니다. 하이브가 그것을 무시합니다.
오픈 소스 하이브 (및 EMR 가능성이 있음)
# reducers = (# bytes of input to mappers) / (hive.exec.reducers.bytes.per.reducer)
이 게시물은 기본 hive.exec.reducers.bytes.per.reducer가 1G라고 말합니다.
hui.exec.reducers.max를 사용하여이 경험적 방법으로 생성 된 감속기의 수를 제한 할 수 있습니다.
원하는 감속기의 수를 정확히 알고 있으면 mapred.reduce.tasks를 설정할 수 있습니다. 그러면 모든 추론이 무시됩니다. 기본적으로이 값은 -1로 설정되어 Hive가 경험적 방법을 사용해야 함을 나타냅니다.
어떤 경우에는 - 'T에서 선택 횟수 (1)'라고 말하십시오 - 하이브는 입력 데이터의 크기와 관계없이 감속기의 수를 1로 설정합니다. 이를 '전체 집계'라고합니다. 쿼리가 수행하는 유일한 작업이 전체 집계 인 경우 컴파일러는 매퍼의 데이터가 사소한 양으로 줄어들고 여러 개의 축소판을 실행하는 지점이 없음을 알고 있습니다.
from https://stackoverflow.com/questions/16203314/how-does-hive-choose-the-number-of-reducers-for-a-job by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 이 작업을 지원하지 않는 트랜잭션 관리자를 사용하여 업데이트 또는 삭제를 시도합니다. (0) | 2019.06.18 |
---|---|
[HADOOP] hbase 연결이 거부되었습니다. (0) | 2019.06.18 |
[HADOOP] 하둡에서지도 함수에 매개 변수 전달하기 (0) | 2019.06.18 |
[HADOOP] hbase-site.xml의 zookeeper 쿼럼 설정은 정확히 무엇입니까? (0) | 2019.06.18 |
[HADOOP] http : // localhost : 50030 / - Hadoop 2.6.0에 연결할 수 없습니다. Ubuntu 14.04 LTS (0) | 2019.06.18 |