임시 데이터 처리를 위한 매퍼 환경 설정 및 셔플 환경 설정
· Version : Hadoop 3.0.0-cdh6.3.2
매퍼(Mapper) 처리중에 발생하는 임시 데이터의 처리를 위한 환경 설정 변수에 대해서 알아본다.
· mapreduce.task.io.sort.mb : 맵의 출력 데이터를 저장할 링버퍼의 메모리 크기. 맵의 처리 결과를 설정한 메모리 크기만큼 저장하고 있다가, io.sort.spill.percent 이상에 도달하면 임시 파일로 출력
ü split/sort 작업을 위한 예약 메모리
ü 매퍼가 소팅에 사용하는 버퍼 사이즈를 설정
ü 디스크에 쓰는 횟수가 줄어듬
· mapreduce.map.sort.spill.percent : 맵의 출력데이터를 저장하는 버퍼(mapreduce.task.io.sort.mb)가 설정한 비율에 도달하면 로컬 디스크에 임시 파일 출력
· mapreduce.task.io.sort.factor : 하나의 정렬된 출력 파일로 병합하기 위한 임시 파일의 개수
· mapreduce.cluster.local.dir : 임시 파일이 저장되는 위치
셔플 단계의 설정은 맵에서 전달 받은 임시데이터를 복사하는 메모리와 데이터를 복사하는 스레드 개수 등을 설정 할 수 있다.
· mapreduce.reduce.shuffle.parallelcopies : 셔플 단계에서 맵의 결과를 리듀서로 전달하는 스레드의 개수
· mapreduce.reduce.memory.total.bytes : 셔플 단계에서 전달된 맵의 데이터를 복사하는 메모리 버퍼의 크기. (기본값 :1024MB)
· mapreduce.reduce.shuffle.input.buffer.percent : 파일로 저장하기 위한 메모리 임계치 비율.
ü mapreduce.reduce.memory.total.bytes *mapreduce.reduce.shuffle.input.buffer.percent 의 사이즈를 초과하면 파일로 저장.
ü 기본값은 0.7
· mapreduce.reduce.shuffle.memory.limit.percent : 메모리 버퍼의 크기에 비해 파일의 비율이 이 설정을 넘어서면 바로 디스크에 기록.
ü mapreduce.reduce.memory.total.bytes * mapreduce.reduce.shuffle.memory.limit.percent 크기를 넘어서면 파일로 저장.
ü 기본값은 0.25
Input 파일 용량에 따라 매퍼, 리듀서 개수 설정할 수 있다.
· mapreduce.input.fileinputformat.split.maxsize :
ü 매퍼에 입력가능한 최대 사이즈
ü 처리하려고 하는 총 size/mapreduce.input.fileinputformat.split.maxsize = 매퍼 개수
· mapreduce.input.fileinputformat.split.minsize : 매퍼에 입력가능한 최소 사이즈
입력 값에 상관없이 매퍼, 리듀서 개수 설정할 수 있다. 하둡 문서에 따르면 매퍼의 개수는 하둡이 계산한 매퍼의 개수 이하로는 설정할 수 없다고 한다. 예를들면 하둡이 매퍼의 개수를 500개로 계산했는데, 사용자가 매퍼의 개수를 100으로 설정하면 500개로 처리된다.
· mapreduce.job.maps : 매퍼의 개수 설정
· mapreduce.job.reduces : 리듀서 개수 설정
[참고자료]
· https://cwiki.apache.org/confluence/display/HADOOP2/HowManyMapsAndReduces
2020-01-07 / Sungwook Kang / http://sungwookkang.com
Hadoop, MapReduce, 매퍼 환경 설정, 셔플 환경 설정, 매퍼, 리듀서 스레드 개수 설정.
'SW Engineering > Hadoop' 카테고리의 다른 글
YARN 메모리 설정 (0) | 2020.01.14 |
---|---|
YARN 스케줄러 – Capacity 스케줄러 (0) | 2020.01.10 |
MapReduce 메모리 설정 (0) | 2020.01.07 |
Hive에서 콤마(,)로 컬럼 구분 및 쿼테이션 내부의 콤마(“, , ”) 파싱 스킵하기 (0) | 2020.01.03 |
MapReduce JobTracker (0) | 2019.12.31 |