2012-07-03 14 views
3

언제 MultithreadedMapper를 사용해야합니까?MultithreadedMapper를 사용하는 경우

내 응용 프로그램이 순수 컴퓨팅 인 곳에서 MultithreadedMapper를 사용하면 작업 속도가 빨라 집니까? (대기 시간 유형 맵퍼가 없음)

답변

6

다르지만 먼저 해결책으로 MultithreadedMapper를 사용하지 마십시오.

그렇기 때문에 더 많은 매퍼를 동시에 실행하여 단일 입력 매퍼를 사용하여 여러 입력에 대해 작업 할 수 있도록 확장하는 것이 좋습니다. 코어가 많을수록 mapred.tasktracker.map.tasks.maximum 값을 높게 설정할 수 있습니다. 물론, 당신은 이것을 위해 더 비싼 기계가 필요할 것입니다.

MultithreadedMapper는 로컬 I/O에서보다 대기 시간이 긴 웹에서 페이지를 가져 오는 것과 같은 I/O 바인딩 일 때 유용합니다. 이 경우 MultithreadedMapper를 사용하면 단일 네트워크 I/O 호출에서 차단되지 않고 데이터를 사용할 수있을 때 처리를 계속할 수 있으므로 도움이됩니다.

그러나 HDFS에서 처리해야 할 대용량 데이터가있는 경우 데이터가 현지화되어 있으므로 쉽게 가져올 수 있으며 계산이 CPU 바인딩이면 다중 코어, 다중 프로세스 솔루션이 더 유용합니다.

또한 매퍼가 스레드로부터 안전한지 확인해야합니다.

3

맵핑에서 복수 스레드를 사용할 때와 수행하지 않을 경우 12을 점검하십시오. MultithreadedMapper를 사용하는 것보다 각 노드의 맵 슬롯 수를 늘리는 것이 좋습니다.