mapred-site.xml에 들어가는 설정 중 메모리와 관련 된 값에 대해 자세히 알아보도록 하겠습니다.
** mapreduce.map.memory.mb - map 작업 ( 컨테이너 생성시 )에 사용하는 memory 용량
맵리듀스 애플리케이션이 실행되려면 애플리케이션 마스터, 맵리듀스 태스크가 실행되어야 하므로 최소 3개의 컨테이너가 필요합니다.
1.mapreduce.map.memory.mb 2.mapreduce.reduce.memory.mb 3.yarn.app.mapreduce.am.resource.mb 의 합계가
yarn.nodemanager.resource.memory-mb보다 작게 설정되어야합니다. 또한 각 속성값들은 반드시 yarn.scheduler.maximum-allocation-mb 값 이하로 설정해야 합니다.
DATANODE의 메모리가 256GB 인 서버 3대
yarn.nodemanager.resource.memory-mb & yarn.scheduler.maximum-allocation-mb 가 211GB로 설정
이때, mapreduce.map.memory.mb = 55291 , mapreduce.reduce.memory.mb = 110592 로 설정.
map보다 reduce를 2배 더 크게 설정하는 게 일반적.
** mapreduce.reduce.memory.mb
- mapreduce.map.memory.mb 보다 2배 설정
** mapreduce.map.java.opts ( = mapreduce.map.java.opts.max.heap 와 같은 설정 )
- 맵 컨테이너를 생성할 때 설정하는 자바 옵션
- Xmx 옵션을 통해 힙사이즈 설정
- 맵 컨테이너 메모리의 80%로 설정
** mapreduce.reduce.java.opts ( = mapreduce.reduce.java.opts.max.heap 와 같은 설정 )
- 리듀스 컨테이너를 생성할 때 설정하는 자바 옵션
- Xmx 옵션을 이용하여 힙사이즈를 설정
- 리듀스 컨테이너 메모리의 80%로 설정
** mapreduce.task.io.sort.mb
- 맵의 출력 데이터를 저장할 환형 버퍼의 메모리 크기
- 맵의 처리 결과를 설정한 메모리에 저장하고 있다가, io.sort.spill.percent 이상에 도달하면 임시 파일로 출력
- mapreduce.map.java.opts 보다 값이 작아야 한다. 값이 클 경우 java heap space 에러가 생김
** mapreduce.task.timeout
- 입력을 읽거나 출력을 쓰지 않고 상태 문자열을 업데이트하지 않는 경우 작업이 종료되기까지 걸리는 시간(밀리초)
- 값이 0이면 시간초과 비활성화
- 기본 hadoop은 300000로 되어있음.
'Hadoop > Apache Hadoop' 카테고리의 다른 글
yarn-site.xml 설정 값 상세내용 (0) | 2023.07.18 |
---|---|
Apache Hadoop ssh port 설정 (0) | 2023.07.18 |
Apache Hadoop 설치 4 ( Hadoop ) (0) | 2023.07.18 |
Apache Hadoop (+ datanode 3대 추가) (0) | 2021.10.07 |
Apache Hadoop 설치 5 ( Hadoop 서버 테스트 ) (0) | 2021.09.23 |