로딩
요청 처리 중입니다...

36. [MapReduce] 맵리듀스 프로그래밍을 시작하기 전에

 36. [MapReduce] 맵리듀스 프로그래밍을 시작하기 전에

맵리듀스 프로그래밍의 규칙들은 사실 그렇게 어렵지 않다. 매퍼의 입력 인자를 잘 정해주고, 매퍼의 출력 인자와 리듀서의 입력 인자를 같게 하며, 리듀서의 출력 인자를 잘 정해주는, 그것뿐이다.

데이터베이스의 조인과 같은 기능을 수행하기 위해 복수개의 input을 설정해야 한다거나, job을 연속해서 수행해야한다거나 하는 문제는 구글링하면 얼마든지 예제를 찾을 수 있다. 그러나 문제는 성능이다.

물론 하드웨어적인 성능은 물론 중요하다. 그것을 뒷받침할 수 있는 로직이 동반되지 않으면 하드웨어가 아무리 좋다한들 무슨 소용이겠는가.

성능 향상에 있어서 코드를 잘 짜는것 또한 하드웨어만큼 중요한 요소인 것이다. 최근 맵리듀스 디자인 패턴을 공부하면서 느낀 것은, '무엇을 위해서 맵리듀스를 하는가'를 정하는 것이 가장 중요하다 라는 것이다.

목적이 명확하고, 무엇을 어떻게 처리해야하는지가 분명해지면 컴바이너나 리듀서, 매퍼, 파티셔너 등을 이용해 성능 효율을 최대로 올리는 것이 가능해진다. ...