본문 바로가기
빅데이터/hive

[hadoop][hive] 리듀서 개수 조절하는 순서

by hs_seo 2016. 9. 6.

하이브 잡을 실행하면 나오는 다음의 설정은

하이브를 실행할 때 리듀서 개수를 조절하는 순서이다. 



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 mapreduce.job.reduces=<number>



hive.exec.reducers.bytes.per.reducer
  • Default Value: 1,000,000,000 prior to Hive 0.14.0; 256 MB (256,000,000) in Hive 0.14.0 and later
  • Added In: Hive 0.2.0; default changed in 0.14.0 with HIVE-7158 (and HIVE-7917)

Size per reducer. The default in Hive 0.14.0 and earlier is 1 GB, that is, if the input size is 10 GB then 10 reducers will be used. In Hive 0.14.0 and later the default is 256 MB, that is, if the input size is 1 GB then 4 reducers will be used.


매퍼의 입력되는 값의 사이즈에 따라 리듀서 개수가 결정된다. 

hive.exec.reducers.max
  • Default Value: 999 prior to Hive 0.14.0; 1009 in Hive 0.14.0 and later
  • Added In: Hive 0.2.0; default changed in 0.14.0 with HIVE-7158 (and HIVE-7917)

Maximum number of reducers that will be used. If the one specified in the configuration property mapred.reduce.tasks is negative, Hive will use this as the maximum number of reducers when automatically determining the number of reducers.

설정한 최대의 값의 리듀서를 설정한다. 

다수의 사용자가 시스템을 사용할 경우 사용자의 원활한 이용을 위해 리듀서를 제한할 필요가 있을 때 사용한다. 

mapred.reduce.tasks
  • Default Value: -1
  • Added In: Hive 0.1.0

The default number of reduce tasks per job. Typically set to a prime close to the number of available hosts. Ignored when mapred.job.tracker is "local". Hadoop set this to 1 by default, whereas Hive uses -1 as its default value. By setting this property to -1, Hive will automatically figure out what should be the number of reducers.


리듀서의 개수를 사용자가 직접 설정한다. 
매퍼의 입력값보다 리듀서의 입력값(데이터 조인을 할 경우 매퍼의 입력값보다 리듀서의 입력값이 늘어날 수 있다.)이 더 클경우나 더 작을 경우
개발자가 직접 리듀서의 개수를 설정할 수도 있다. 



반응형