2016-10-05 4 views
2

하둡의 단어 카운트 예제의 경우 map 함수에서 단어와 하나를 파일에 중간 결과로 쓰고 reduce를 사용하여 합계를 계산합니다. 매퍼 함수에서 해시 맵을 사용하지 않는 이유는 키가 단어이고 값이 카운트인데, 한 단어가 한 파일에서 여러 번 발생하면 단어 값이 추가됩니다. 매퍼 함수가 끝나면 결과를 출력합니다.하둡 워드 카운트

이러한 방식으로 결합기를 사용하기는하지만 원본 설계 (결합기를 사용하지 않고)보다 효율적입니다. 효율성은 동일해야합니다.

어떤 조언이 필요합니까?

답변

1

예, 해시 맵도 사용할 수 있습니다. 그러나 솔루션을 설계 할 때 최악의 시나리오를 고려해야합니다.

일반적으로 블록의 크기는 128MB이며 단어 길이가 짧고 반복이 거의없는 것으로 간주됩니다. 이 경우에는 많은 단어와 따라서 no. HashMap에있는 항목이 증가하여 훨씬 많은 양의 메모리가 소모됩니다. 동일한 데이터 노드에서 작동하는 여러 가지 작업이있을 수 있으므로이 HashMap은 더 많은 양의 RAM을 소비하므로 결국 다른 작업도 느려질 것입니다. 또한 HashMap의 크기가 커지면 Rehashing을 수행하여 작업 실행에 더 많은 시간을 추가해야합니다.

+0

메모리가 원인 일 수 있습니다. – Robin

+0

메모리를 많이 사용하면 작업 실행 속도가 느려집니다. – Azim