제한시간 3분. 내용 검증은 안 됐음. 깔라면 까든가.
자원이 많으면 맵퍼가 많아야 좋지만 자원 경쟁 상태에서는 이게 또 곤란하다. 대지여 하늘이여 나에게 코어를 몰빵해다오???
하둡에서는 기본적으로 파일 수 만큼 맵퍼가 뜬다. 그 다음 스플릿 크기 설정에 따라서 특정 크기 이상의 파일을 나눠서 맵퍼를 각각 할당한다.
작은 파일이 드럽게 많으면 어쩌나? 설정이 온전하지 않다면 맵퍼가 겁나게 뜬다. 자원 경쟁 상태에 있다면 곤란한 이야기다.
파티션이 많으면 파일도 많다. 파일 크기가 들쭉날쭉 하다면 어떤 코어는 파일 하나 끝내고 놀고 있는데 어떤 코어는 크~~~~은 파일 처리한다고 뺑이치고 있다.
그래서 적절한 맵퍼 수를 유지하는 것은 한정된 자원 하에서 민폐를 끼치지 않기 위해서도 중요하다.
mapreduce.input.fileinputformat.split.minsize=1000000000;
mapreduce.input.fileinputformat.split.maxsize=1000000000;
실험 해보니 이 설정의 의미가 있었다. 대충 1G 이하인 파일은 매퍼 하나가 모아서 처리하고, 1G 이상인 파일은 나눠서 매퍼를 추가할당한다.