2017-02-22 4 views
0

Q1 - 돼지 작업을 위해 실행되는 매퍼의 수는 입력 나누기 수에만 좌우됩니까? Q2 : 매퍼의 수는 돼지 스크립트에서 사용하는 문장에 달려 있습니까? 예 : foreach, group, join, filter? 128MB의 입력 파일을 가지고 있다면 돼지에서 사용한 문장과 관계없이 하나의 매퍼 만 실행하게됩니다. Q3 : 돼지 용 결합기는 언제 작동합니까?돼지 작업을 위해 실행되는 매퍼가 없음

질문 4 : 결합기가지도 축소 작업에서 여러 번 실행됩니까?

답변

0

Q1. 예 및 아니오, 예 모든 단계에서 실행되는 매퍼의 수는 입력 분할 수에 따라 다릅니다. 그러나 단 하나의 무대 만있을 것이라는 보장은 없습니다. 따라서 모든 쿼리 실행의 전체 매퍼 수는 실제로 쿼리 자체에 따라 달라지며 이는 2 질문 (Q2)에도 응답합니다.

단일 입력 slpit에 50 개국 인구가 포함 된 데이터 집합이 있고 3, 4 및 5 개의 인구가 가장 많은 국가의 이름을 원하지만 그들은 반대 순서로 나타나야한다. 즉 가장 인구가 많은 5 개 국가가 먼저 나타나야하고 4 개 국가가 계속 나타나야 함을 의미한다. 이제 돼지에 쿼리를 작성할 때 map reduce 작업이 다음과 같은 방식으로 실행되어 결과를 얻을 수 있습니다.

첫 번째지도 축소 작업은 국가를 내림차순으로 정렬 한 다음 결과를 저장합니다. 이제 첫 번째지도 축소 결과에서 두 번째지도가 실행되어 3, 4, 5 개의 인구가 가장 많은 국가를 선택하고 저장합니다. 그런 다음 두 번째 맵의 결과를 줄이면 세 번째 맵 축소 작업이 실행되어 다시 원하는 순서로 정렬되고 최종 결과가 표시됩니다.이 예에서 벗어나는 주된 이유는 단일 입력 분할이 있었지만 실행 된 매퍼의 수가 3 . (이 예제를 해결하기 위해 취해야하는 접근법은 매우 순진하며 단일 맵 작업에서 이러한 모든 작업을 수행 할 수있는 방법이 있으며 돼지의 이러한 쿼리는 단일 MR 작업을 수행 할 것이라고 확신합니다. 돼지 쿼리가 어떻게 실행되는지에 대한 관점에서 3지도를 실행하여 작업을 줄이는 이유는 무엇입니까?)

Q3 및 Q4도 1과 2와 비슷한 대답을 가지고 있습니다. 모두 쿼리에 따라 다릅니다. 결합 자에 대한 제약 조건을 정의하지 않은 한 명시 적으로.

하지만이 쿼리에 대해 개발자가 작성한 맵 축소 프로그램은 리소스를 최소한으로 사용하도록 최적화되어 있습니다.