4
Combiner는 Mapper 다음에 실행되고 Reducer보다 먼저 주어진 노드의 Mapper 인스턴스가 방출하는 모든 데이터를 입력으로받습니다. 그런 다음 Reducer에 출력을 내 보냅니다. 따라서 결합 자 입력에 대한 기록은지도보다 작아야합니다.왜 조합기 입력 레코드의 수가지도 출력 수보다 많습니까?
12/08/29 13:38:49 INFO mapred.JobClient: Map-Reduce Framework
12/08/29 13:38:49 INFO mapred.JobClient: Reduce input groups=8649
12/08/29 13:38:49 INFO mapred.JobClient: Map output materialized bytes=306210
12/08/29 13:38:49 INFO mapred.JobClient: Combine output records=859412
12/08/29 13:38:49 INFO mapred.JobClient: Map input records=457272
12/08/29 13:38:49 INFO mapred.JobClient: Reduce shuffle bytes=0
12/08/29 13:38:49 INFO mapred.JobClient: Reduce output records=8649
12/08/29 13:38:49 INFO mapred.JobClient: Spilled Records=1632334
12/08/29 13:38:49 INFO mapred.JobClient: Map output bytes=331837344
12/08/29 13:38:49 INFO mapred.JobClient: **Combine input records=26154506**
12/08/29 13:38:49 INFO mapred.JobClient: **Map output records=25312392**
12/08/29 13:38:49 INFO mapred.JobClient: SPLIT_RAW_BYTES=218
12/08/29 13:38:49 INFO mapred.JobClient: Reduce input records=17298
네, 귀하의 요지에 동의합니다. 결합을 사용하고 사용하지 않는 대답은 같고 옳습니다. 따라서 결합에 폴링 프로세스가 있다고 생각합니다. – alex
이것이 입력 레코드를 줄이는 것이 출력 레코드를 결합하는 것보다 훨씬 적은 이유이기도합니다 (중간 결과도 계산됩니다). – vefthym