Ile redukuje? (Z official documentation)
odpowiednią ilość zmniejsza wydaje się 0,95 lub 1,75 pomnożone przez (no. Węzłów) * (nr. Maksymalnych pojemników na węźle).
z 0,95 wszystkie redukcje mogą zostać uruchomione natychmiast i rozpocząć przesyłanie wyników map w momencie zakończenia map, a po 1.75 szybciej węzły zakończą swoją pierwszą rundę zmniejszania i uruchomią drugą falę redukcji, co znacznie ułatwia zadanie równoważenia obciążenia:
Zwiększenie liczby redukcji zwiększa obciążenie ogólne ramy, ale zwiększa równoważenie obciążenia i obniża koszty awarii.
Powyższe współczynniki skalowania są nieco mniejsze niż liczby całkowite, aby zarezerwować kilka zmniejszeń w ramach dla zadań spekulacyjnych i zadań zakończonych niepowodzeniem.
Ten artykuł dotyczy również licznika Mapper.
Ile map?
liczba map jest zwykle napędzany przez całkowitą wielkość nakładów, czyli całkowita liczba bloków z plików wejściowych.
odpowiednim poziomie równoległości dla map wydaje się być około 10-100 mapy per-węzeł, mimo że został ustawiony do 300 map dla bardzo zadań map CPU-light. Konfiguracja zadań zajmuje trochę czasu, więc najlepiej jest, jeśli wykonanie mapy zajmuje co najmniej minutę.
Zatem jeśli oczekujesz 10 TB danych wejściowych i mieć rozmiar bloku 128 MB, będziesz skończyć z 82000 mapach, chyba Configuration.set(MRJobConfig.NUM_MAPS, int)
(co stanowi jedynie wskazówkę dla ram) służy do ustawienia go nawet wyżej.
Jeśli chcesz zmienić domyślną wartość 1 dla liczby reduktorów, można ustawić poniżej domu (Hadoop wersji 2.x) jako parametr wiersza poleceń
mapreduce.job.zmniejsza
LUB
można ustawić programowo z
job.setNumReduceTasks(integer_numer);
Wystarczy popatrzeć na jeden powiązany SE pytanie: What is Ideal number of reducers on Hadoop?
Liczba reduktorów jest domyślnie 1, chyba że ustawisz go do dowolnej liczby niestandardowych że ma sens dla twojej aplikacji, używając 'job.setNumReduceTasks (n);'. Proponuję pominąć istniejące "zasady kciuka". – vefthym
@vefthym czy to nadal prawda? Zapomniałem podać dowolną liczbę i miałem 56 GB danych, a zostało podzielone na 7 plików po 8 GB każdy. Czy istnieje automatyczny powrót rezerwy, jeśli jest zbyt dużo danych dla 1 reduktora? – Thomas
@Thomas Czy odnosisz się do liczby plików wyjściowych, czy liczby podziałów wejściowych? Wartość domyślna 1 jest dla plików wyjściowych (zmniejsz zadania). Wierzę, że to nadal prawda. Jeśli nie ustawiłeś go programowo, możesz również ustawić go jako parametr środowiska wykonawczego. – vefthym